2015-04-30 4 views
2

У меня есть приложение для простого чата. Пользователи вводят имя пользователя и сообщение и должны быть вставлены в базу данных.Форма действия onclick без обновления с Ajax

Это не происходит с этим кодом, и, очевидно, я что-то отсутствует:

FORM + SCRIPT

<form action="chat_s.php" method="post" class="send" id="form1" > 
      <p> 
       <label for="name">Name:</label> 
       <input type="text" name="name" id="name"> 
      </p> 
    <div style="width: 480px; height: 400px; text-align: left;" id="DIV_CHAT"> 
    </div> 
      <p> 
    <textarea id="msg" rows="5" cols="66" name="msg" placeholder="Your Message"></textarea></p> 
      </p> 
    <input class="submit" type="submit" id="button1" name="submit" value="Send" onfocus="this.blur()" /> 
    </form> 
    <script> 
     var frm = $('#form1'); 
     frm.submit(function (ev) { 
      $.ajax({ 
       type: frm.attr('method'), 
       url: frm.attr('action'), 
       data: frm.serialize(), 
       success: function (data) { 
        alert(data); 
       } 
      }); 
      ev.preventDefault(); 
     }); 
</script> 

Это файл PHP, который должен вставить в базу данных пользователей вход:

CHAT_S.PHP

<?php 
include_once 'connection.php'; 
if(!isset($_POST['submit'])) {}else 
{ 
$name = mysqli_real_escape_string($mysqli,$_POST['name']); 
$msg = mysqli_real_escape_string($mysqli, $_POST['msg']); 
$dt = date("Y-m-d H:i:s"); 
$sql = "INSERT INTO messages (username, chatdate, msg) VALUES ('$name', '$dt', '$msg')"; 
mysqli_query($mysqli, $sql); } 
$mysqli->close(); 
?> 

Но результат ничего. Он ничего не предупреждает! И ничего в базу не вставить, он просто обновляет окно чата :(

+0

Используйте отладчик для пошагового вашего кода сервера Смотрите, что он вызывается, проверьте значение. переменные –

+0

Проверьте ответ, который вы получаете в сетевом потоке. Возвращает ли оно какое-либо сообщение об ошибке? – kidA

+0

В сети нет ошибок. (Все зеленые. Я не знаю, где искать проблему? – mpavlovic89

ответ

1

попробовать:

var frm = $('#form1'); 
    frm.submit(function (ev) { 
     f = $('#form1'); 
     $.ajax({ 
      type: f.attr('method'), 
      url: f.attr('action'), 
      data: f.serialize(), 
      success: function (data) { 
       alert(data); 
      } 
     }); 
     ev.preventDefault(); 
    }); 
+0

Не повезло с этим :( – mpavlovic89

Смежные вопросы