Я использую php / ajax для отправки формы без обновления страницы.Вот мои файлы -
coupon.js
jQuery(document).ready(function(){
jQuery(".appnitro").submit( function(e) {
$.ajax({
url : "sms.php",
type : "post",
dataType: "json",
data : $(this).serialize(),
success : function( data ) {
for(var id in data) {
jQuery('#' + id).html( data[id] );
}
}
});
//return false or
e.preventDefault();
});
});
sms.php
<?php
//process form
$res = "Message successfully delivered";
$arr = array( 'mess' => $res );
echo json_encode( $arr );//end sms processing
unset ($_POST);
?>
и вот код для моей html-страницы -
<form id="smsform" class="appnitro" action="sms.php" method="post">
...
</form>
<div id="mess" style="background:green;"></div>
Теперь вместо отправки формы через ajax без обновления страницы происходит перенаправление страницы на
baseurl/sms.php
, и единственное, что видно на странице, это
{"mess":"Message successfully delivered"}
Я предполагаю, что php-скрипт не возвращается обратно в jquery, и, следовательно, отображается эхо в последней части sms.php. Как я должен заставить php-скрипт успешно возвращаться?ЛЮБЫЕ ИДЕИ КАК ОТЛАДАТЬ ЭТО.Я ПЫТАЛСЯ ИСПОЛЬЗОВАТЬ return false
в конце coupon.js, но безрезультатно.
Когда я нажимаю на Отправить, Firebug дает следующие результаты -
POST http://174.132.194.155/~kunal17/devbuzzr/wp-content/themes/street/sms.php
404 Not Found 1.29s `jquery.min.js (line 130)`
Ответ
Firebug needs to POST to the server to get this information for url:
http://174.132.194.155/~kunal17/devbuzzr/wp-content/themes/street/sms.php
This second POST can interfere with some sites. If you want to send the POST again, open a new tab in Firefox, use URL 'about:config', set boolean value 'extensions.firebug.allowDoublePost' to true
This value is reset every time you restart Firefox This problem will disappear when https://bugzilla.mozilla.org/show_bug.cgi?id=430155 is shipped