2013-03-22 64 views
-1

解决它如何动态地添加JavaScript到PHP页面,PHP代码在它

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

而$ pajinate_js是下面的代码,而是起始页:startPageVal


我有麻烦搞清楚如何从表单添加JavaScript。 基本上我有如下代码(忽略脚本本身,而不是一条线(起始页):

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

如果我把PHP页面里面的代码,我马上就得到起始页:3(或任何价值,我得到),但如果我在浏览器中源通过文本区做动态的,我得到的纯文本:

startPage : <?php echo $_COOKIE["currentPage"]; ?> 

这将作为一个结果,导致整个事情不工作我使用BASE64_DECODE和BASE64_ENCODE通过数据库来传递,否则MySQL的INSERT语句不起作用。

希望你明白我的意思。有人知道如何解决它吗?

+0

有点困惑 - 你在暗示你已经存储在数据库中的PHP代码,并试图对其进行评估后*** ***查询?因为这是一个非常糟糕的做法。您的cookie的价值应该在您将该JS写入数据库的任何文件中解决。 – Emissary 2013-03-22 16:12:14

+0

没有什么太复杂的,因为你认为。我所要做的就是将javascript添加到数据库,以便它可以在页面上自定义,具体取决于页面上的用户。 无论如何,我通过设置javascript var然后在代码中使用它来代替startPage来解决问题:<?php echo $ _COOKIE [“currentPage”]; ?>我设置它var jstartPage = <?php echo $ _COOKIE [“currentPage”];并在代码startPage:jstartPage,它的工作。 – 2013-03-22 16:32:26

回答

1

的人,我已经测试了这个例子,它的工作原理,尝试合并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> 
+0

我必须通过数据库来完成。 Sql插入引发错误。所以我编码时插入和解码时,页面上的回声,但它写<?php echo $ _COOKIE [“currentPage”]; ?>,而不是我应该摆脱它的价值。 – 2013-03-22 15:52:23

0

这取决于你使用引号。

<?php 

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

?> 
+0

我必须通过数据库来完成。 Sql插入引发错误。所以我编码时插入和解码时,页面上的回声,但它写<?php echo $ _COOKIE [“currentPage”]; ?>,而不是我应该摆脱它的价值。 – 2013-03-22 15:51:55

+0

我想我不明白你想要做什么。如果我不得不把这个放在数据库中,取决于使用的方法,我会使用var和mysqli_real_escape_string($ js)或PDO :: quote($ js)。 – 2013-03-22 15:58:32

0

试试这个:

<?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; 
?> 
0

好吧,我觉得我得到的是什么问题 - 对不起它花了几分钟才平息你已经存储在数据库中的脚本/模板或任何这需要从一个PHP变量的值 - 只有你,你写入数据库之前,因为它是一个cookie值是特定于谁正在运行脚本的用户解决该变量。所以,你已经写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);