如何在php页面中动态添加包含php代码的javascript

如何在php页面中动态添加包含php代码的javascript,php,javascript,jquery,mysql,Php,Javascript,Jquery,Mysql,解决了 <?php $startPage = $_COOKIE["currentPage"];?> <script type="text/javascript"> var startPageVal = <?php echo $startPage; ?>; <?php echo base64_decode($pajinate_js); ?> </script> var startPageVal=; 虽然$pajinate_js是下面

解决了

<?php $startPage = $_COOKIE["currentPage"];?>
<script type="text/javascript">
var startPageVal = <?php echo $startPage; ?>;
<?php echo base64_decode($pajinate_js); ?>
</script>

var startPageVal=;
虽然$pajinate_js是下面的代码,但却是startPage:startPageVal


我不知道如何从表单添加JavaScript。 基本上我有这样的代码(忽略脚本本身,而不是一行(起始页):

$(函数(){
/*启动插件*/
美元(“部门持有人”).jPages({
集装箱:“内容”,
每页:2,
起始页:,
星际旅行:1,
中档:5,
范围:1,,
}      
});
如果我立即将代码放在PHP页面中,我会得到startPage:3(或任何我得到的值),但是如果我在浏览器源代码中通过Textarea动态执行,我会得到纯文本:

startPage : <?php echo $_COOKIE["currentPage"]; ?> 
起始页:
这将导致整个程序无法运行。我使用base64_decode和base64_encode将其传递给数据库,否则mysql insert语句将无法运行


希望你能理解我的意思。有人知道如何解决这个问题吗?

伙计,我已经测试了这个例子,它可以工作了,试着像这样合并php和javascript:

<html>
<form  method="post" >
<input type="text" value="10" name="input">
<input type="submit" value='submit'>
</form>

<script type="text/javascript">
  var x = <?php echo $_POST['input']; ?> ;
  alert(x);
</script>
</html>

var x=;
警报(x);

这取决于您使用的引号

<?php

$js = '$(function(){
 /* initiate the plugin */
 $("div.holder").jPages({
     containerID  : "content",
     perPage      : 2,
     startPage    : '.$_COOKIE["currentPage"].',
     startRange   : 1,
     midRange     : 5,
     endRange     : 1,
     }      
});';
echo $js;

?>

试试这个:

<?php    
    $js = '<script>$(function(){
     /* initiate the plugin */
     $("div.holder").jPages({
         containerID  : "content",
         perPage      : 2,
         startPage    : '.$_COOKIE["currentPage"].',
         startRange   : 1,
         midRange     : 5,
         endRange     : 1,
         }      
    });<script>';
    echo $js;
?>

好的,我想我明白了问题所在-抱歉,我花了几分钟才明白。您的脚本/模板或任何存储在数据库中的东西需要来自PHP变量的值-只有在写入数据库之前您无法解析该变量,因为它是特定于运行因此,您已经向数据库编写了PHP代码,希望在运行数据库查询后对其进行评估,对吗

这不是它的工作方式-虽然“技术上”可以用这种方式将其组合在一起,但这将是非常糟糕的做法,所以

您真正想要做的是动态构建脚本。例如,您的脚本可以存储为一个字符串,其中包含一个标记,该标记具有某种描述,稍后您可以将其替换掉:

$(function(){
  /* initiate the plugin */
  $("div.holder").jPages({
  containerID  : "content",
  perPage      : 2,
  startPage    : %%COOKIEVAL%%,
  startRange   : 1,
  midRange     : 5,
  endRange     : 1,
  }      
});
然后,从数据库中检索后,可以运行如下操作:

$script = val_from_db(); // whatever
echo str_replace('%%COOKIEVAL%%', $_COOKIE["currentPage"], $script);

我必须通过数据库来完成。Sql Insert会抛出一个错误。因此,我在插入时进行编码,在页面上回音时进行解码,但它会写入,而不是我应该从中获取的值。我想我不明白你想做什么。如果我必须将其放入数据库,我会使用var和mysqli_real_escape_字符串($js)或PDO::quote($js)取决于使用的方法。我必须通过数据库执行。Sql Insert会引发错误。因此,我在插入时进行编码,在页面上进行echo时进行解码,但它会写入,而不是我应该从中获取的值。有点困惑-您是否建议将PHP代码存储在数据库中,并在查询后尝试对其进行评估?Beca使用这将是一个非常糟糕的做法。你的cookie的值应该在你将JS写入DB的任何文件中解析。没有什么像你想的那么复杂。我所要做的就是将javascript添加到数据库中,以便根据页面上的用户在页面上进行自定义。我以不同的方式解决了这个问题无论如何,通过设置javascript var,然后在代码中使用它而不是startPage:我将其设置为var jstartPage=
$script = val_from_db(); // whatever
echo str_replace('%%COOKIEVAL%%', $_COOKIE["currentPage"], $script);