我有一个使用javascript的滑块。我试图根据滑块值更新我的网页显示。我试图使用ajax函数将数据发送到另一个PHP页面来更新显示。但我的页面中没有任何内容。到目前为止,这是我的代码。
<?php
$i = 1;
while (++$i <= $_SESSION['totalcolumns']) {
$range = $_SESSION["min-column-$i"] . ',' . $_SESSION["max-column-$i"];?>
<br><?php echo "Keyword" ?>
<?php echo $i -1 ?>
<br><input type="text" data-slider="true" data-slider-range="<?php echo $range ?>" data-slider-step="1">
<?php } ?>
<button type="button" onclick="loadXMLDoc()">Update</button>
<script>
$("[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));
});
</script>
<script>
function loadXMLDoc()
{
alert "Am I coming here";
$.ajax({
type: "POST",
url: 'update.php',
data: { value : data.value },
success: function(data)
{
alert("success!");
}
});
}
</script>
我在另一篇文章中读到,各个函数都提供了javascript变量,因此我尝试在另一个javascript函数 loadXMLDoc()中使用变量 data.value 。但我没有看到我的 update.php 页面中显示的值。我的update.php文件如下。
<?php
if(isset($_POST['value']))
{
$uid = $_POST['value'];
echo "Am I getting printed";
echo $uid;
}
?>
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
在loadXMLDoc函数中,我没有看到任何地方定义的数据。我认为这可能是其中一个问题。此外,当你正在进行jquery ajax请求时,请务必进行失败回调。失败回调将告诉您请求是否失败,这可能非常有用。
var jqxhr = $.ajax( "example.php" )
.done(function() {
alert( "success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "complete" );
});
要使XMLLoadDoc函数中的数据变量可访问,您可以尝试将其放在全局范围内(类似于'禁止',但对于这样的用例,它可以)。因此,在顶部声明var masterData
,然后在.bind回调集masterData = data;
中有数据,然后在loadXMLDoc中引用masterData