将JavaScript变量传递给PHP并将PHP结果返回给JavaScript变量

时间:2013-10-28 14:07:54

标签: javascript php jquery ajax

我想使用AJAX将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文件的结果设置为在标识为ajaxResult

的HTML元素中显示

但是我怎样才能在结果中设置变量呢?

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

4 个答案:

答案 0 :(得分:2)

我认为您可能正在寻找success的{​​{1}}属性?

$.ajax

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

来实现它
.done()

答案 1 :(得分:0)

您需要分配传递给成功处理程序的参数结果:

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

答案 2 :(得分:0)

使用$ .post();相反......

在您的情况下,您可以使用:

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

这里是$ .post()http://api.jquery.com/jQuery.post/

的文档

答案 3 :(得分: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);运行。这是.load()调用在您之前的帖子中执行的操作。

Jquery提供了许多快捷方法,例如.post().load(),使用.ajax()可以实现所有相同的效果,尽管它会涉及更多的输入!