【问题标题】:How can I pass the values of a jQuery callback function to a PHP script for further validation?如何将 jQuery 回调函数的值传递给 PHP 脚本以进行进一步验证?
【发布时间】:2011-12-21 19:14:35
【问题描述】:

如何将 jQuery 回调函数的值传递给 PHP 脚本以进行进一步验证?在这里,我从 getJSON 函数接收纬度和经度。我需要使用这些值来访问数据库,在其中将它们与现有坐标进行比较以找到附近的位置;即邻近搜索。

$('#form_map').submit(function() {      

    var pc = $('#post_code').val();
            if(pc != '') {
                $.getJSON('/mod/gg.php?pc='+pc, function(data) {
                    lat = data.results[0].geometry.location.lat;
                    lng = data.results[0].geometry.location.lng;
                    });
                }
            return false;

            });

我想获取 lat / lng 的值并将它们转换为 php 变量。这是一个邻近搜索。首先将用户输入的地址转换为坐标,然后通过 PHP 脚本访问数据库。我需要从 JSON 数组返回的坐标可用作 PHP 变量,以便它们可以访问数据库。

<?php 
if(isset($lat) && isset($lng)){
// Do something
}

收到 lat / lng 值后,我希望它们是 &lt;php $lat = 'Value of callback funcion'; $lng = 'Same'; ?&gt; 然后我可以运行 PHP 脚本的其余部分。我怎样才能做到这一点?谢谢。

【问题讨论】:

  • 到目前为止,您有一个 javascript 函数将带有数据的表单提交到 /mod/gg.php,您是在问如何在 php 中使用表单数据,还是从 gg.php 获取数据处理后返回javascript?
  • 在使用 jQuery 时切勿将 GET/POST 数据作为字符串传递。您可以将 JavaScript 对象作为键/值列表传递:$.getJSON('/mod/gg.php', {pc: pc}, function(data) { ... })
  • 注明。但是,如何将函数(数据)结果传递给 PHP 脚本?如果我实际上不能使用坐标来搜索数据库,那将毫无意义。这甚至是可能的还是一种奇怪的方法?
  • gg.php 可以处理“PHP 脚本的其余部分”(数据库坐标搜索)中的任何内容吗?

标签: php jquery mysql json


【解决方案1】:

首先:为什么不在回复ajax请求之前将值存储在数据库中?

如果您真的想使用“回调”来执行此操作,则可以使用第二个 ajax 作为回调来执行持久性脚本。

$.getJSON('/mod/gg.php?pc='+pc, function(data) {
                    lat = data.results[0].geometry.location.lat;
                    lng = data.results[0].geometry.location.lng;
              $.post("/mod/storeindb.php", { lat : lat, lng : lng }, function(data){
                     // do something with whatever you return
              });
     });
}

一定要注意:php是在服务器端执行的,javascript是在客户端执行的。它们都是自治的,唯一连接它们的是 HTTP 请求。这些运行异步。这意味着您所说的“回调”实际上是对不同脚本的另一个 ajax 调用。

我之所以这么说,是因为我觉得您希望阻塞回调在同一个脚本中线性执行(这是不可能的)。如果不忽略最后一段

【讨论】:

    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 2012-08-19
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多