php变量中的Javascript代码

时间:2012-12-27 12:16:26

标签: php javascript

我想将javascript代码放到php变量中,之后将其保存到mysql数据库中,然后在页面上回显它。我有将javascript代码保存到php变量并在页面上回显的问题。

我试图以这种方式将javascript代码保存到php变量但是出现了错误:

$parameter = "<script language='JavaScript'>document.write(geoip_country_name());</script>";

为了回应来自数据库的这个javascript代码,我想用这种方式:

$parameterecho = htmlentities($parameter);
echo $parameterecho; 

是否有更好的解决方案来回显页面代码以及如何将代码保存到php变量?

3 个答案:

答案 0 :(得分:2)

我认为你可以用AJAX实现你想要的。这里是一个使用jQuery的模型:

$.post(
        save_parameter.php,
        {
            parameter : geoip_country_name()
        });

file save_parameter.php
// save parameter to DB

$.get(
        get_parameter.php,
        function(parameter) {
            alert(parameter);
        }, 'html');

file get_parameter.php
// get $parameter from DB
// echo  $parameter
// exit;

<强>更新

您可以使用jQuery动态加载/运行javascript:

$.getScript("have_javascript_code.php");

<强>最后

但似乎你在谈论保存/使用超过javascript值。如果你真的想这样做没有问题。虽然我建议你重新考虑一下你的方法并利用之前的片段。

保存代码:

$parameter   = "<script language='JavaScript'>document.write(geoip_country_name());</script>";
$code        = htmlspecialchars($parameter, ENT_QUOTES);
// insert to DB

ouptut代码:

// get $code from DB
$code = htmlspecialchars_decode($code, ENT_QUOTES);
echo <<<EOF
<script type="text/javascript">
$code
</script>
EOF;

答案 1 :(得分:1)

Javascript和PHP不一样。你在想,呃!很明显,但我的意思是Javascript是一种“客户端”技术,而PHP是一种“服务器端”技术。

您的Javascript只能读取PHP变量,因为首先在服务器上处理.php页面然后返回输出。因此,任何变量都将输出到JS中。

然而,相反的情况并非如此。您的Javascript无法访问服务器上的任何PHP信息。让PHP可以访问PHP变量的唯一方法是使用所需的变量+值将POST或GET重新发送回服务器(再次调用.php)。

答案 2 :(得分:1)

PHP在服务器上运行,以便代码将在服务器上执行,并且当页面被加载时,首先整个PHP将被执行并且$parameter将被定义,因为javascript在客户端运行它将在之后启动加载页面或更有可能执行php之后。