我想将javascript代码放到php变量中,之后将其保存到mysql数据库中,然后在页面上回显它。我有将javascript代码保存到php变量并在页面上回显的问题。
我试图以这种方式将javascript代码保存到php变量但是出现了错误:
$parameter = "<script language='JavaScript'>document.write(geoip_country_name());</script>";
为了回应来自数据库的这个javascript代码,我想用这种方式:
$parameterecho = htmlentities($parameter);
echo $parameterecho;
是否有更好的解决方案来回显页面代码以及如何将代码保存到php变量?
答案 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之后。