Witam, mam problem z obsługą mojego formularza za pomocą AJAX(jQuery).
Drzewo katalogów:
/Chat/room.php - Pokój czatowy,
/Chat/send.php - Skrypt php odpowiedzialny za wysyłanie wiadomości do bazy,
/Chat/form.js - Skrypt jQuery odpowiedzialny za obsługę formularza,
/Chat/inc/html_start.php - początki html'owej treści XD.
Mój kod:
/Chat/room.php <?include('inc/runApp.php'); $variable = ''; if(isset($_SESSION['logged'])){ /*** ROOM ***/ if(isset($_GET['room'])){ $_room = addslashes(htmlspecialchars($_GET['room'])); } else { $_room = 'home'; } /*** SHOW MESSAGES ***/ echo '<div id="show" data-room="'.$_room.'">'; $shoutsQ = $db->query("SELECT * FROM `chat_shouts` WHERE `room` = '$_room'"); if($shoutsQ->num_rows>0){ $full = $shoutsQ->num_rows; $full2 = $full-10; $shoutsQ2 = $db->query("SELECT * FROM `chat_shouts` WHERE `room` = '$_room' ORDER BY `id` DESC LIMIT 15"); while($shout=$shoutsQ2->fetch_assoc()){ if(strtolower($_SESSION['login']) == strtolower($shout['author'])){ $class = 's s-my'; } else { $class = 's'; } $variable = ' <div class="'.$class.'"> <div class="avatar"> <span class="tooltip"> <img src="avatar/default.png" title=""> <span>'.$shout['author'].'</span> </span> </div> <span class="s-content">'.$shout['content'].'</span> </div>'.$variable; } echo $variable; } else echo '<p>Nie znaleziono żadnych wpisów.</p>'; echo '</div>'; /*** SEND MESSAGE ***/ echo '<form method="POST" id="send" action="send.php"> <input type="text" name="content" placeholder="Treść posta" id="inp-send-text"> <input type="submit" value="<" id="inp-send-sub"> </form>'; } include('inc/exitApp.php'); ?>
form.js $(document).ready(function(){ $('form#send').submit(function(event){ event.preventDefault(); var cons = $('input[name=content]').val(); var form = $(this); $.ajax({ 'url': form.attr('action'), 'type': 'post', 'data': 'content=test', 'success': function(response){ alert(response.message + '/' + response.status + '/' + form.attr('action') + '/' + cons); } }); }); });
send.php <? $nohtml = 1; include('../inc/runApp.php'); if(isset($_POST['content'])){ $_content = addslashes(htmlspecialchars($_POST['content'])); $_author = stripslashes($_SESSION['login']); $_date = date('d/m/Y'); $db->query("INSERT INTO `chat_shouts` (`content`,`author`,`date`,`room`) VALUES ('$_content','$_author','$_date','$_room')"); echo 'success'; } include('../inc/exitApp.php'); ?>
html_start.php <? echo '<!DOCTYPE html> <html lang="pl"> <head> <meta charset="UTF-8"> <title>Czat</title> <link rel="stylesheet" href="'.$scriptdir.'css/reset.css"> <link rel="stylesheet" href="'.$scriptdir.'css/style.css"> <script src="'.$scriptdir.'js/jquery.min.js"></script> <script src="'.$scriptdir.'js/show.js"></script> <script src="'.$scriptdir.'form.js"></script> </head> <body> <div class="container"> <nav> <a href="'.$scriptdir.'">Główna</a> </nav>'; ?>
W czym problem? Wiadomość mi się nie chce wysłać, w alert() wyskakuje mi undefined/undefined/send.php/treść_wiadomości. Nie wiem co tu mogłem zepsuć