問題描述:Ajax傳值狀态是200正确的,但就是擷取不到success後的傳回值data,最後發現隻有alert()一下才可以正确擷取值。
解決方法:把Ajax裡面的async設定為false問題解決
分析原因:當async設定為true時,是異步傳輸,即一js一邊傳向Server,一邊緊接着就執行下面的傳回值,那如果Server那邊還沒有處理好,這邊就當然不會有輸出值了,加上alert後會有是因為Server那邊已處理好,設定成false就是讓它執行完成後再執行html端的。
//-----------------------------------前台頁面--------------------------------------------------
<html>
<head>
<title></title>
<script type="text/javascript" src="./js/jquery.js"></script>
<script>
function fun(){
var username = $("input[name=username]").val();
$.ajax({
type: "GET",
async:false,//預設是true
url: "php.php",
data: { username:username, Name: "Jquery" },
success:function(data, st){
alert(data);
}
})
// alert(username); 如果async設定為true,在這個地方必須要alert一下才可以擷取success裡的data值
}
</script>
</head>
<body>
<div align="center">
<form action="" name="frm">
聯系人:<input type="text" name="username" value="" /><br>
電&nbsp;&nbsp;話: <input type="text" name="phone" id="idPhone" /><br>
<button onclick="fun();">送出</button><br>
<div><span id="number">350</span>人報名</div>
</form>
</div>
</body>
</html>
//-------------------------------------------伺服器頁面---------------------------------------------------
<?php
include 'conn.php';
if(!empty($_GET['id']))
{
echo $_GET['username'];
}
PHP網站開發求職QQ群 368848856