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,异步非阻塞的请求方式)