ajaxphp傳值
A. ajax get 傳值給php問題
1.php中responseText列印出來會返回yes,4.php則是輸出的no.
這是正確的。
使用以下兩條語句後
xHRObject.open("GET", "4.php?lat=" + 1 +"&lng=" + 1, true);
xHRObject.onreadystatechange = getData;
4.php已經運行了,只是它的輸出YES直接送到xHRObject對象中了,
因此xHRObject.responseText列印出來為YES
而直接運行4.PHP,因沒有帶參數,即lat沒有定義,輸出為NO
ajax與普通的GET或POST不同的,GET或POST一般會從當前頁面跳轉到GET或POST指定頁面,如本例中可能會跳轉到4.PHP,即如你所說的4.PHP成功輸出YES;但ajax不會跳轉,因此顯示的YES信息也只會在當前頁面。
B. ajax傳值給php
javascript函數不能這樣寫,改成下面這樣:
<scripttype="text/javascript"src="jquery-1.2.6.min.js"></script>
<scripttype="text/javascript">
functionShowNumber(device)
...
</script>
C. 關於PHP和AJAX之間的傳值問題
1、type:"POST", 你指定的是 post方式傳送,而你用的卻是get方式傳送(data:"userpwd=" + userpwd + "&username=" + username,)。
2、data 應該是 json 格式
data:{"userpwd":userpwd,"username":username},
D. 我做php的,ajax傳值亂碼,亂碼都是這種方式:%u5BB4,以%u開頭的!請問怎麼解決呀
JQuery在Ajax提交出現中文亂碼的解決辦法:
因為編碼的原因
可能存在以下幾點原因:
1.HTML的編碼不統一:如頁面用的GB2312,好像JQuery對它支持不太好。以前我一直都是用UTF-8的,一直都沒有發現;
2.文件的編碼,這個不好在
表面上看到,簡體中文版的操作系統存的文本格式的文件默認是 GB2312,建議把文件換成UTF-8格式的
最簡單的解決辦法,把提交的中文文本用 JS的 escape 處理一下,就不會現出現亂碼了。
如:
//保存數據
$.ajax({
url:"/guide/savecomments.aspx" ,
type:"POST" ,
dataType:"json" ,
data:"Action=SaveComment&CommNickName=" +escape
(CommNickName.val()) + "&CommContent=" +escape(CommContent.val()) + "&GuideID=" + GuideID.val() + "&ScoreLogType=<%=ScoreLogType %>",
success:function
(results){
alert(results.message);
}
});
E. AJAX 向PHP傳遞參數
能啊!給你個例子啊!
<html>
<head>
<script type="text/javascript">
var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// all modern browsers
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// for IE5, IE6
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = "loaded"
if (xmlhttp.status==200)
{// 200 = "OK"
document.getElementById('p1').innerHTML="This file was last modified on: " + xmlhttp.getResponseHeader('Last-Modified');
}
else
{
alert("Problem retrieving data:" + xmlhttp.statusText);
}
}
}
</script>
</head>
<body>
<p id="p1">
The getResponseHeader() function returns a header from a resource.
Headers contain file information like length,
server-type, content-type, date-modified, etc.</p>
<button onclick="loadXMLDoc('/example/ajax/test_xmlhttp.txt')">Get "Last-Modified"</button>
</body>
</html>
F. 如何在同一個PHP頁面,通過ajax把值傳給PHP變數
舉個例子:你想在用戶點擊時,把 apple 這個字元串,通過前端傳給後端。
前端,用 jQuery 舉例:
$('button').click(function () {
$.ajax({
url: '/xxx',
method: 'post',
dataType: 'json',
data: {fruit: 'apple'}
}).done(function (res) {
// 成功後的回調
}).fail(function (err) {
// 失敗後的回調
});
});
後端 PHP 處理:
$fruit = $_POST['fruit']; // 獲取從 ajax 傳過來的 fruit 的值,這里是 apple。
如果你想在前端重新顯示這個字元串 apple,那麼你要用 PHP 把數據返回給頁面,然後在上面 「// 成功後的回調」 裡面,補充邏輯代碼。
例如 PHP 把 apple 返回給前端:
return json_encode(array('fruit' => 'apple'));
前端回調處理:
// 成功後的回調
alert(res.fruit); // 彈框顯示 「apple」
實際上,$_POST 能夠獲取所有從前端用 post 方式提交過來的數據,不管你是頁面刷新方式,還是 ajax(jQuery 才叫 ajax,實際上它是 XMLHttpRequest,非同步非阻塞的請求方式)