2013-10-28 165 views
1

我想使用AJAX將JavaScript變量傳遞給PHP文件,然後將PHP文件的結果返回給JavaScript變量。將JavaScript變量傳遞給PHP並將PHP結果返回給JavaScript變量

對於JavaScript變量傳遞到PHP文件,我會以爲它是像how to use ajax to assign javascript variable to php variable

我的JavaScript變量將用於查詢MySQL數據庫,然後我需要PHP返回從數據庫中的值回到一個JavaScript變量。

我知道你可以這樣做:

$(document).ready(function() { 
    Quantity = parseInt(str); 
    $("#ajaxResult").load($.ajax({url:"yourphp.php",type:"POST",async:false,data:{quantity:Quantity}});); 
}); 

要設置PHP文件的結果與ID ajaxResult

一個HTML元素展現,但我將如何設置一個變量爲結果,也許?

$(document).ready(function() { 
     Quantity = parseInt(str); 
     var result = $.load($.ajax({url:"yourphp.php",type:"POST",async:false,data:{quantity:Quantity}});); 
    }); 

回答

2

我想你可能會尋找的$.ajaxsuccess財產?

returnVariable = NULL; 
$.ajax({ 
    url:"yourphp.php", 
    type:"POST", 
    async:false, 
    data:{quantity:Quantity}, 
    success:function(d){ 
    returnVariable = d; 
    } 
}); 

您也可以使用.done()實現它:

$.ajax({ 
    //Properties 
}).done(function(d){ 
    returnVariable = d; 
}); 
+0

ajax調用是異步的,所以該值將在http調用和返回後分配 - 這可能需要幾秒鐘的時間。 –

0

你需要指定的參數傳遞給您的成功處理結果:

$.ajax({ 
    url: "yourURL.com", 
    data: jsonString, 
    dataType: 'json', 
    success: function(data){ 
    var myNewJSVar = data; 
    } 
}); 
0

使用.post的$();而是......

你的情況,你可以使用:

$.post('url-to-post', {'var-name':'var-value'}, function(data) { 
    // here 'data' has the data returned by your .php file 
}); 

這裏的文檔$。員額()http://api.jquery.com/jQuery.post/

0

不太存儲結果到一個全局變量的AJAX查詢:

$(document).ready(function() { 
    var quantity = parseInt(str); 
    var result = null; 
    $.ajax({url:"yourphp.php", 
    type:"POST", 
    async:false, 
    data:quantity, 
    success: function(data) { 
     result = data; 
    } 
    }); 
}); 

ajax調用是異步的,所以這個值將在http調用和返回後分配 - 這可能需要幾秒鐘的時間。一旦http調用從服務器獲得結果,成功回調就會運行。通常更新你的html頁面的代碼將在這裏運行,也許$('resultDiv').html(data);。這是​​調用在您以前的帖子中所做的。

jquery提供了很多快捷方法,如.post(),​​,使用.ajax()可以達到所有相同的效果,但它會涉及更多的輸入!