3

我通过 ajax 将一个变量从 javascript 传递到另一个 PHP 页面。我做不到。这是我到目前为止的代码。

<script>
function loadXMLDoc()
        {
        $.ajax({
                    type: "POST",
                    url: "update.php",
                    data: { value : masterdata },
                    success: function(data)
                    {
                        alert("success!");
                    }
                }); 

}
$("button").on('click',function(){ loadXMLDoc(); });
</script>

masterdata变量来自另一个 javascript 函数,我在其中全局声明了该变量,如下面的函数所示

<script>

    var masterdata;      
    $("[data-slider]")

       .each(function () {
           var range;
            var input = $(this);
            $("<span>").addClass("output")
                .insertAfter(input);
            range = input.data("slider-range").split(",");
            $("<span>").addClass("range")
                .html(range[0])
                .insertBefore(input);
            $("<span>").addClass("range")
                .html(range[1])
                .insertAfter(input);
        })
        .bind("slider:ready slider:changed", function (event, data) {
            $(this).nextAll(".output:first")
                .html(data.value.toFixed(2));
                masterdata = data.value;

        });


</script>

在我的update.php文件中,我试图使用$_REQUEST访问变量。代码如下。

<?php

    $uid = $_REQUEST['value'];
    echo "Am I getting printed";
    echo $uid;
    // Do whatever you want with the $uid
?>

但是,如果我单击更新按钮,则不会发生任何事情。我只是收到一条警报,说我的 ajax 调用成功。有人可以帮我吗?

4

2 回答 2

1

在您的成功函数中,您并没有要求它显示返回的数据,这就是您只看到警报的原因,将其更改为:

success: function(data)
   {
     alert(data);
   }

因为data这是从您的请求返回的值

对于 php 部分,请记住一件事,只需调整您的 php 页面以显示您需要的数据,并记住无论您如何制作这些数据,使用echo或只是纯 html,php 代码的结果是您将在 ajax 中的变量中得到什么。如果您使用 JSON,您可以在 php 页面中执行以下操作:

$uid = $_REQUEST['value'];
$x.uid = $uid;
$x.something = "something";
return $x;

这样,您将在客户端获得所需的所有数据作为对象,然后您可以按照自己喜欢的方式操作它,以更紧凑的方式,如果您想阅读有关该主题的更多信息,只需搜索 RESTful api

于 2013-10-12T19:37:50.023 回答
0

我建议对您从update.php脚本中获得的输出进行 JSON 编码,并将其传递回 AJAX 函数。在您的update.php文件中,您可以简单地使用 PHP 函数json_encode($var),并回显它:

<?php
    $uid = $_REQUEST['value'];
    echo json_encode($uid);
?>

从您的 AJAX 函数中,您应该指定dataType(通常 JS 会智能地猜测返回的数据类型,但我们应该始终指定它以防万一):

function loadXMLDoc() {
    $.ajax({
        type: "POST",
        url: "update.php",
        data: { value : masterdata },
        dataType: "json",
        success: function(data) {
           // Log data into console for reference (and checking, perhaps)
           console.log(data);

           // Parse data here
        }
    }); 
}
于 2013-10-12T19:50:40.993 回答