如何将变量值从 .post 响应传递到 PHP
How to pass variables values from .post response to PHP
我正在尝试使用我的wp-admin插件从Google Maps Api运行地理编码。我有自己的帖子类型,其中输入了地点地址,jQuery代码监视单击div。这就是我的代码:
插件代码 [PHP]:
add_action( 'wp_ajax_generate_geocode', array($this, 'generate_geocode') );
[...]
//here is my test function that is waiting for response and doing something.
public function generate_geocode() {
print_r($_POST);
die();
}
AJAX Code [JS with jQuery]:
jQuery(document).ready(function() {
var lat = '';
var lng = '';
jQuery('#generate-geocode').on('click', function() {
var address = jQuery('#address').val();
// alert(address);
var geocoder = new google.maps.Geocoder();
geocoder.geocode({address: address}, function(results, status) {
//alert(status);
if (status == google.maps.GeocoderStatus.OK) {
lat = results[0].geometry.location.lat();
lng = results[0].geometry.location.lng();
alert(lat + ' ' + lng);
}
});
data = {
action: 'generate_geocode',
lat: lat,
lng: lng
};
jQuery.post(ajaxurl, data, function(response) {
alert(response);
});
});
});
我的问题是我不知道如何将 lat 和 lng 变量或其值(结果 [0].geometry.location.lat() 和结果 [0].geometry.location.lng()的值)传递给我的 PHP 代码。所以现在我在我的警报中:
Array
(
[action] => generate_geocode
[lat] =>
[lng] =>
)
你能告诉我如何传递这些值吗?也许有更好的方法?:)
我认为你的问题与此非常相似:
在 JavaScript 中从内部作用域设置外部作用域变量
geocoder.geocode 之后的代码实际上在函数响应之前运行,因此您可能希望将 jQuery.post 放在回调函数中,以确保在需要时设置变量。
相关文章:
- 使用AJAX只获取PHP响应
- AJAX-没有得到简单的php响应(返回“undefined”)
- AJAX PHP - 响应是一个具有空值的对象
- 如果 PHP 响应等于某物,如何使 jQuery 警报
- DropzoneJS:上传成功后如何获得PHP响应
- PHP:响应 AJAX 发布请求
- 在javascript http post请求之后处理不同的php响应
- 使用 ajax 显示 php 响应文本
- PHP响应变得非常慢(使用MySQL)
- Ajax,处理 javascript 中的 php 响应
- 从 php 响应 AJAX 的更好方法
- jQuery认为每个PHP响应都有staus 0
- 将 PHP 响应输出为 XML
- 将PHP响应日期转换为客户端本地时间
- 使用jQuery将PHP响应的字符串分配给Javascript中的变量
- 如何在JavaScript中动态创建的输入字段中更新特定的输入字段,ajax从PHP响应
- 尝试用Javascript填充字段,由PHP响应
- 在HTML中使用返回的JSON编码AJAX PHP响应<作为值
- 如何在ajax中添加基于php响应的消息,同时处理
- 原型Javascript框架-获取PHP响应