2013-10-12 50 views
2

我通过ajax将一个变量从javascript传递给另一个PHP页面。我无法做到。这是迄今为止的代码。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

你期望什么? –

+0

尝试:“echo $ HTTP_RAW_POST_DATA;”在你的PHP中查看你得到的POST数据。这可能会帮助您调试。 – user2759991

+0

我期待在我的update.php文件中打印$ uid值,该文件正在调用** Update **按钮。 –

回答

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; 

这样你将所有的数据,您需要在客户端作为一个对象,然后你可以操纵它,你喜欢的方式,在一个更简洁的方法,只要搜索REST风格的API,如果你想阅读更多关于主题

+0

是的。我收到警报中的回复。但是,我怎样才能让它显示在一个单独的PHP文件中?例如,我通过ajax请求调用update.php文件。我通过ajax请求将javascript变量发送到update.php文件。我需要显示update.php文件,而不是显示警报(数据)。可能吗? –

+0

查看更新请 –

+0

'成功:function(data) { alert(data); }' 在上面的函数中,我不需要alert(data)来显示PHP文件的内容。我不想要一个警报窗口,而是需要显示我在update.php文件中的表格。是否有可能使用ajax? –

0

我会推荐JSON编码你从update.php脚本获得的输出,并将其传递回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 
     } 
    }); 
}