如何使用PHP代码访问javascript变量

时间:2011-12-21 13:57:01

标签: php javascript

        function al(){
        var selr = jQuery('#grid').jqGrid('getGridParam','selrow');
        if(selr){
            <?
                include_once("../../DB/singleton.php");
                $pDatabase = Database::getInstance();
                $c = $pDatabase->query("select c.city_title as 'City' from teamshuffle.tbl_city c, teamshuffle.tbl_sport_city s where c.tblcity_id = s.tblcity_id and s.tblsport_id = " . );
                while($r = mysql_fetch_array($c)){
                    echo("alert(\"" . $r[0] . selr . "\");");
                }
            ?>

        }
    }

这是我的javascript函数。我需要在行

中访问变量“selr”
echo("alert(\"" . $r[0] . $d . "\");");

5 个答案:

答案 0 :(得分:1)

简答:你做不到。 PHP是服务器端,JavaScript是客户端。

长答案:

您可能无法“访问”变量,但您可以在ajax请求中将值发送到PHP页面所需的任何内容并在那里使用它。作为POST参数或Query参数。

答案 1 :(得分:1)

在PHP中访问JS变量是不可能的。但是,您可以使用PHP生成javascript,它看起来像这样,并按照您的预期执行:

            while($r = mysql_fetch_array($c)){
                echo 'alert("' . $r[0] . '" + selr);';
            }

请注意+ selr是echo的一部分,因此它被发送到浏览器,javascript在客户端执行字符串连接。

如果您不明白我的意思,请在浏览器中查看生成的HTML源代码。

答案 2 :(得分:0)

不,你不能这样做。 PHP在服务器上运行,Javascript - 在客户端的浏览器中。他们必须通过HTTP请求进行通信。

答案 3 :(得分:0)

您必须将ajax请求发回服务器并发送适当的响应。

答案 4 :(得分:0)

抱歉,没有测试过,只是猜测一下。尝试使用cookies;

function al(){
    var selr = jQuery('#grid').jqGrid('getGridParam','selrow');
    setCookie("selr", selr, 1);

    if(selr){
        <?
            include_once("../../DB/singleton.php");
            $pDatabase = Database::getInstance();
            $c = $pDatabase->query("select c.city_title as 'City' from teamshuffle.tbl_city c, teamshuffle.tbl_sport_city s where c.tblcity_id = s.tblcity_id and s.tblsport_id = " . );
            while($r = mysql_fetch_array($c)){
                echo("alert(\"" . $r[0] . $_COOKIE['selr'] . "\");");
                 }
        ?>
    }
}
function setCookie(c_name,value,exdays){
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}