我正在使用php/ajax提交沒有頁面刷新的表單。這裏是我的文件 -從遠程php腳本返回數據
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腳本成功返回? 任何想法如何調試這個。我曾嘗試在coupon.js結束時使用return false
,但沒有結果。
當我點擊提交螢火給出以下結果 -
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
出於好奇,unset($ _POST)有什麼意義;'? – 2010-09-22 21:01:55
取消設置'$ _POST'只會使(a)請求花費很長時間,(b)'$ _POST'數組非常龐大,(c)即使這樣,它也不是微型優化和/或這不應該在HTTP請求中處理。 – Wrikken 2010-09-22 22:45:21