2013-10-12 232 views
0

我有一个使用javascript的滑块。我试图根据滑块值更新我的网页的显示。我试图使用ajax函数将数据发送到另一个PHP页面来更新显示。但是我没有在我的页面上看到任何东西。这是我的代码到目前为止。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变量在功能可用,所以我试图用变量data.value我的另一个JavaScript函数loadXMLDoc()把读取里面。但是我看不到在我的update.php页面显示的值。我的update.php文件如下。

<?php 
if(isset($_POST['value'])) 
{ 
    $uid = $_POST['value']; 
    echo "Am I getting printed"; 
    echo $uid; 
} 
?> 

有人可以帮助我吗?

回答

1

在loadXMLDoc函数中,我看不到在任何地方定义的数据。我认为这可能是问题之一。另外,当你在做jQuery ajax请求时,一定要有一个失败回调。失败回调会告诉你请求是否失败,这可能非常有用。

var jqxhr = $.ajax("example.php") 
.done(function() { 
    alert("success"); 
}) 
.fail(function() { 
    alert("error"); 
}) 
.always(function() { 
    alert("complete"); 
}); 

要在XMLLoadDoc函数的数据变量访问,你可以尝试把它在全球范围内(样的“禁忌”,但它的使用情况是这样OK)。因此,在顶部,声明var masterData,然后当您有.bind回调集masterData = data;,然后在loadXMLDoc中的数据请参阅masterData

+0

我需要通过** data.value **变量存在** $(“[data-slider]”)**脚本。我应该如何通过** data.value **按钮点击? –

+0

我会编辑以反映这一点。不挂断。 –

+0

我已经声明了变量,如果我使用$(“data-slider”)脚本中的alert,我能够看到masterdata的值。但是,如果我尝试通过ajax将其发送到另一个php,我无法显示任何内容。 –