2013-10-28 168 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()可以达到所有相同的效果,但它会涉及更多的输入!