php变量中的Javascript代码

php变量中的Javascript代码,php,javascript,Php,Javascript,我想把javascript代码放到php变量中,然后将它保存到mysql数据库中,然后在页面上回显它。我在将javascript代码保存到php变量并在页面上回显时遇到问题 我试图以这种方式将javascript代码保存到php变量,但出现错误: $parameter = "<script language='JavaScript'>document.write(geoip_country_name());</script>"; 有没有更好的方法将代码回送到页面以及如何

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

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

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

有没有更好的方法将代码回送到页面以及如何将代码保存到php变量?

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

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


然而,事实并非如此。您的Javascript无法访问任何PHP信息,因为它位于服务器上。让PHP访问JS变量的唯一方法是使用所需的变量+值发布或返回服务器(再次调用.PHP)。

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

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


然而,事实并非如此。您的Javascript无法访问任何PHP信息,因为它位于服务器上。让PHP访问JS变量的唯一方法是发布或返回服务器(再次调用.PHP)使用所需的变量+值。

PHP在服务器上运行,这样代码将在服务器上执行,当页面首先加载时,整个PHP将一直执行,并且您的
$参数将未定义,因为javascript在客户端运行,它将在页面加载后或更可能在PHP执行后启动。

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

我认为您可以通过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=“document.write(geoip_country_name());”;
$code=htmlspecialchars($parameter,ENT_引号);
//插入到数据库
ouptut代码:

//从数据库获取$code
$code=htmlspecialchars\u decode($code,ENT\u引号);

echo我认为使用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=“document.write(geoip_country_name());”;
$code=htmlspecialchars($parameter,ENT_引号);
//插入到数据库
ouptut代码:

//从数据库获取$code
$code=htmlspecialchars\u decode($code,ENT\u引号);

echo所以不可能动态地将javascript插入页面?@zokopog您遇到了什么错误???@RohitKumarChoudhary是的,如果是从应用程序的后端插入,您可以这样做。在普通的PHP网页中,您不能。OT:你犯了什么错误?这对我来说似乎并不奇怪。注意:试图在中获取非对象的属性和致命错误:调用非对象上的成员函数fetch_assoc(),因为无法将javascript动态插入页面?@zokopog您会遇到什么错误???@RohitKumarChoudhary是的,如果它来自应用程序的后端,您可以这样做。在普通的PHP网页中,您不能。OT:你犯了什么错误?这对我来说似乎并不奇怪。注意:尝试获取中非对象的属性时出现致命错误:调用中非对象的成员函数fetch_assoc()
// get $code from DB
$code = htmlspecialchars_decode($code, ENT_QUOTES);
echo <<<EOF
<script type="text/javascript">
$code
</script>
EOF;