无法在php中回显jquery(with ajax)变量

时间:2013-07-05 09:40:18

标签: php javascript ajax variables

我正在尝试通过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' ];
            }
?>

现在为什么不回应帖子?谢谢!

4 个答案:

答案 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
        }
    });
});