在以$sql =
开头的行中是否可以使用之前在javascript中定义的变量?
var southWestLat = map.getBounds().getSouthWest().lat();
var southWestLng = map.getBounds().getSouthWest().lng();
var northEastLat = map.getBounds().getNorthEast().lat();
var northEastLng = map.getBounds().getNorthEast().lng();
var coordinatesMap =
<?php
global $wpdb;
$sql = "SELECT user_id, lat, lng FROM coordinates WHERE lat>southWestLat and lat<northEastLat and lng>southWestLng and lng<northEastLng";
$rows = $wpdb->get_results($sql, OBJECT_K);
...
?>;
答案 0 :(得分:2)
由于javascript是客户端语言,如果无法直接使用它们。但是,您可以使用AJAX将这些JS变量的值传输到服务器。执行sql语句并将结果返回给某些JSON对象,例如。
HTH:)
Oki所以说我们在JS中有以下内容
var myvar1 = "HELLO WORLD 1";
var myvar2 = "HELLO WORLD 2";
现在我们想通过AJAX将myvar发送到服务器。这是如何。
$.ajax({
type: "POST",
url: "some.php",
data: ({'action' : 'action1' , 'myvar1' : myvar1 , 'myvar2' : myvar2 }),
success: function(msg){
alert( "Data Saved: " + msg );
}
});
url必须是一些处理ajax请求的脚本。该脚本将回显的内容将最终出现在成功回调的msg变量中。
AJAX处理程序
为此,您需要为每个AJAX请求发送一个额外的参数。如果你看一下上面的例子,我添加了action参数。这将允许我们确定AJAX Hander应该执行哪个动作。
ajaxhandler.php
switch($_POST["action"]) {
case "action1":
action1($_POST["myvar1"]);
break;
case "action2":
action2($_POST["myvar2"]);
break;
}
function action1($myvar1){
do your action logic here
}
function action2($myvar2){
do your action logic here
}
答案 1 :(得分:0)
当JavaScript在客户端的浏览器中运行时,PHP在服务器上运行。
所以你需要使用AJAX来做这件事 - 看看jQuery's AJAX functions。
答案 2 :(得分:0)
答案 3 :(得分:0)