0

我有一个使用 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;
}
?>

有人可以帮我吗?

4

1 回答 1

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

于 2013-10-12T17:57:56.040 回答