1

我想使用 AJAX 将 JavaScript 变量传递给 PHP 文件,然后将 PHP 文件的结果返回给 JavaScript 变量。

为了将 JavaScript 变量传递给 PHP 文件,我假设它类似于如何使用 ajax 将 javascript 变量分配给 php 变量

我的 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 的 HTML 元素中ajaxResult

但是我该如何为结果设置一个变量呢?

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

4 回答 4

2

我想您可能正在寻找 的success财产$.ajax

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;
});
于 2013-10-28T14:12:02.027 回答
0

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

$.ajax({
  url: "yourURL.com",
  data: jsonString,
  dataType: 'json',
  success: function(data){
    var myNewJSVar = data;
  }
});
于 2013-10-28T14:12:01.613 回答
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/的文档

于 2013-10-28T14:12:20.633 回答
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()

于 2013-10-28T14:17:57.247 回答