如何从php到js使用那里定义的变量?

时间:2011-05-30 08:05:52

标签: php javascript

在以$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);
    ...
?>;

4 个答案:

答案 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)

不,这是绝对不同的事情。 javascript在客户端执行,php代码在服务器端执行。只有通过HTTP请求将js值传递给php脚本时才能实现目标

答案 3 :(得分:0)

希望此链接可以帮助您。

how-to-get-javascript-function-data-into-php-variable