1

我正在尝试通过 ajax 发布一个变量。但它不会在 php.ini 中回显变量。

这是变量(这些正在工作,在日志中可以看到):

 $("#slider").bind("valuesChanged", function(e, data){console.log("min: " + data.values.min + " max: " + data.values.max);});

阿贾克斯部分:

$("#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 回声:

<?php

if ( $_POST ) {

        echo $_POST[ 'minValue' ];
            }
?>

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

4

4 回答 4

1

好的,因为我的评论结果是答案,这里是:
更改success回调以对数据执行某些操作:

success: function(data)
{
    console.log(data);
}

我还建议不要dataType明确设置。jQ 在弄清楚响应的数据类型是什么方面做得很好,并且在发送对象 litaral 时(就像你正在做的那样)它在处理它方面也做得很好。

检查此问题以获取有关 jQ 如何“猜测”响应的数据类型的
更多详细信息 正如您在API 文档中所读到的,默认数据类型是application/x-www-form-urlencoded; charset=UTF-8,因此发送对象文字完全没有问题。

于 2013-07-05T11:21:07.147 回答
1

当您在 PHP 脚本中执行 echo 时,它将作为响应发送回 ajax 调用。因此,您必须检查 $.ajax 的成功部分。就这样吧,

....
success: function(data) {
  alert(data);
},
....
于 2013-07-05T09:55:59.353 回答
1

回显结果在传递给成功方法的数据变量中返回。除非你这样做,否则它不会出现

alert(data)
于 2013-07-05T09:43:33.203 回答
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
        }
    });
});
于 2013-07-05T09:49:52.770 回答