ajax传值给php
‘壹’ 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信息也只会在当前页面。
‘贰’ 通过ajax传一个值给php,请求失败
varformData=newFormData();
formData.append('goodsNum',1);
$.ajax({
url:'index.php',/*获取表单提交路径*/
type:'post',/*提交方式*/
data:formData,/*提交数据*/
processData:false,
contentType:false,
success:function(msg){
/*执行成功后*/
console.log(msg);
},
error:function(jqXHR){
/*执行失败后*/
console.log(JSON.stringify(jqXHR));
}
},'json');
‘叁’ 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>
‘肆’ 用jQ的ajax传值给PHP总是错误怎么回事
ajax是后台运行的,你本身是看不到php文件的运行结果的,只能ajax返回他的运行结果
其实你的代码没必要那么复杂
$.post('zixun.php, {peplpe:a}, function(data){alert(data)});
‘伍’ 如何在同一个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,异步非阻塞的请求方式)
‘陆’ 关于PHP和AJAX之间的传值问题
1、type:"POST", 你指定的是 post方式传送,而你用的却是get方式传送(data:"userpwd=" + userpwd + "&username=" + username,)。
2、data 应该是 json 格式
data:{"userpwd":userpwd,"username":username},
‘柒’ js获取到的值如何用ajax传到php中
$.ajax({type:"",url:"",data:"",dataType:"json",success:function(data){
//这里处理返回的结果
//type为数据提交的方式post或者get
//data表示要提交的数据方式为{name1:value1,name2:value2.....等等}
//dataType表示数据处理后返回的数据类型一般返回json的数据类型使用$.each进行循环操作
//success表示数据请求成功后执行的动作
}});
‘捌’ ajax传值给php
javascript函数不能这样写,改成下面这样:
<scripttype="text/javascript"src="jquery-1.2.6.min.js"></script>
<scripttype="text/javascript">
functionShowNumber(device)
...
</script>
‘玖’ AJAX怎么通过POST把一个数据发给PHP
帮你调试了一下你的代码,发post请求,,数据的格式是:'name=zhangsan&age=18' ,这种字符串格式的,所以你要把你的var senddata="4"; 改成var senddata="senddata=4";
php 部分,
$getDeviceID=$_POST[senddata];
改成$getDeviceID=$_POST['senddata'];
接收的参数需要加上单引号。
另外如果是jquery就比较简单了,去jquery官网下载jq3.3.1然后引入
php部分
<?php
echojson_encode($_POST,320);
?>
html部分
<html>
<head>
<scriptsrc="jquery-3.3.1.min.js"></script>
</head>
<body>
<script>
functionfreshdata(){
$.ajax({
url:"test.php",//提交地址
type:"post",//提交方式
dataType:'json',
data:{
'senddata':4,
//如果在加其他参数
'name':'张三',
'age':20,
},
success:function(ret){//msg返回值
alert('senddata:'+ret.senddata+' 姓名:'+ret.name+' 年龄:'+ret.age);
}
});
}
</script>
<spanonclick="freshdata()">点击发送ajax请求</span>
</body>
</html>
效果图
‘拾’ ajax传给php的值为空
我记得我开始学ajax的时候也遇见过post接不到值的情况,
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
加上这句看看吧,在open后面加上,回来我再看看我的笔记,呵呵
Good Luck :)