2013-10-12 53 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 
     } 
    }); 
}