Хорошо, у меня простая форма, состоящая только из text field
. Данные, записанные в текстовом поле, хранятся в БД, когда мы нажимаем submit (Хранилище через ajax). Ajax отлично работает, и данные отправляются, однако страница get обновляется автоматически, а URL-адрес содержит содержимое поля ввода.
Моя форма: –
<form class="form-horizontal"> <fieldset> <!-- Text input--> <div class="form-group"> <label class="col-md-4 control-label" for="message"></label> <div class="col-md-5"> <input id="message" name="message" type="text" placeholder="message" class="form-control input-md" required=""> </div> </div> <!-- Button --> <div class="form-group"> <label class="col-md-4 control-label" for="submit_message"></label> <div class="col-md-4"> <button id="submit_message" name="submit_message" class="btn btn-success">Enter</button> </div> </div> </fieldset> </form>
Ajax: –
$("#submit_message").click(function() { var message = $("#message").val(); $.ajax({ type: "POST", url: "ajax_getter.php?requestid=2", data: { message: message, c: c }, dataType: "html" }).done(function( msg ) { //load_content(); alert(msg); }); });
PHP: –
//... if($chat->insert("chat_threads", $arr)) { echo 1; } else { echo 0; }
После того, как результат появится во popup
окне, обновление страницы и URL-адреса станут примерно такими: – chat.php? Message = 454545 & submit_message = Почему обновляется страница?
Кажется, что ваша форма отправляется. Попробуйте предотвратить событие по умолчанию (т.е. представление):
$("#submit_message").click(function(e) { e.preventDefault(); // This prevents form from being sumbitted // the rest of your code });