AJAX将变量从javascript传递给PHP

时间:2013-10-12 19:21:56

标签: javascript php jquery ajax

我通过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电话成功。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分: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,如果您想了解更多关于主题

答案 1 :(得分: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
        }
    }); 
}