0

我想将 javascript 代码放入 php 变量,然后将其保存到 mysql 数据库,然后在页面上回显。我在将 javascript 代码保存到 php 变量并在页面上回显时遇到问题。

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

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

为了从数据库中回显这个javascript代码,我想用这种方式:

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

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

4

3 回答 3

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

输出代码:

// get $code from DB
$code = htmlspecialchars_decode($code, ENT_QUOTES);
echo <<<EOF
<script type="text/javascript">
$code
</script>
EOF;
于 2012-12-27T12:35:25.877 回答
1

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

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

然而,反之则不然。您的 Javascript 无法访问任何 PHP 信息,因为它驻留在服务器上。使 PHP 可以访问 JS 变量的唯一方法是使用所需的变量+值将 POST 或 GET 返回到服务器(再次调用 .php)。

于 2012-12-27T12:22:11.393 回答
1

PHP 在服务器上运行,因此代码将在服务器上执行,当页面首先加载时,整个 PHP 将被执行,并且您$parameter将是未定义的,因为 javascript 在客户端运行,它将在页面加载后或 php 执行后启动更倾向于。

于 2012-12-27T12:23:54.090 回答