我正在尝试通过ajax发布变量。但它不会回应php中的变量。
这是变量(这些变量正常,见于日志中):
$("#slider").bind("valuesChanged", function(e, data){console.log("min: " + data.values.min + " max: " + data.values.max);});
Ajax部分:
$("#slider").bind("valuesChanged", function (e, data) {
$.ajax({
type: "POST",
dataType: "text",
url: "../test.php",
data: { minValue: data.values.min, maxValue: data.values.max },
async: false,
success: function(data){
alert('yeah')
},
error: function(xhr) {
alert('fail') // if your PHP script return an erroneous header, you'll land here
}
});
});
</script>
和php echo:
<?php
if ( $_POST ) {
echo $_POST[ 'minValue' ];
}
?>
现在为什么不回应帖子?谢谢!
答案 0 :(得分:1)
在传递给success方法的数据变量中返回echo结果。除非你做
,否则它不会出现alert(data)
答案 1 :(得分:1)
当您在PHP脚本中执行echo时,它将作为响应发送回ajax调用。所以你必须检查$ .ajax的成功部分。那样做,
....
success: function(data) {
alert(data);
},
....
答案 2 :(得分:1)
好的看到我的评论结果是答案,这里有:
更改success
回调以对数据执行某些操作:
success: function(data)
{
console.log(data);
}
我还建议不明确设置dataType
。 jQ在确定响应的数据类型方面做得很好,并且当发送一个对象litaral(就像你正在做的那样)时,它也会在处理这个问题时做得非常糟糕。
Check this question for more details on how jQ "guesses" the datatype of the resonse
正如您在the API docs中所读到的那样,默认数据类型为application/x-www-form-urlencoded; charset=UTF-8
,因此发送对象文字完全没有问题。
答案 3 :(得分:0)
$("#slider").bind("valuesChanged", function(e, data) {
$.ajax({
type: "POST",
dataType: "text",
url: "../test.php",
data: { minValue: data.values.min, maxValue: data.values.max },
async: false,
success: function(data) {
// alert('yeah')
alert(data)
},
error: function(xhr) {
alert('fail') // if your PHP script return an erroneous header, you'll land here
}
});
});