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