2012-02-29 26 views
0

我正在使用codeigniter,并且我有一个使用jquery的超时函数。我只需要找到一种方法从应用程序正在使用的数据库中的字段中获取数字(int),并将javascript文件中的初始int设置为它。正如您在代码''中看到的那样需要从数据库表中动态接收。由于它不需要Ajax(不需要实时动态接收数据),我希望尽可能找到更轻的解决方案。在这种情况下最好的做法是什么?使用mysql初始配置的Javascript/jquery

$(document).ready(function() { 

    idleTimer = null; 
    logoutTimer = null; 
    idleWait = 900000; //15 minutes 
    logoutWait = 30000; //30 sec 
    timeUp = false; 
+0

只输出从PHP的值:' idlewait = <?php echo $ idlewait; ?>;' – 2012-02-29 03:28:31

+0

我不熟悉笨,但你可以直接在你的JavaScript包括PHP。 '例如,idleWait = <?= $ php_variable;?>;'。 – 2012-02-29 03:30:02

+0

是的,唯一的事情是我必须从数据库中获取它。如果有一个连接数据库的短php函数,并且在javscript页面中获取超时值是最好的方法,那么我想我可以这样做。只是想知道是否有更好的方法来做到这一点。 – ALF 2012-02-29 03:31:48

回答

1

只需使用echo即可在脚本中输出该值。

idleWait = <? echo $timeoutValueRetrievedFromDataBase ?>; 
0

PHP将不会在标准的JS文件中运行,没有太多修改。首先,找到您的<head>部分所在的.php文件。找到第一个<script>标签,你会在此之前工作。这样你就可以继续设置一个变量,当你的JS文件被加载时就会做好准备。

右上面的第一<script>标签插入这样的事情

<script> 
<?php 
    //you will need to connect to db here and get your timeout value from the database 
    //we assume $timeout has the correct value in it 
    echo "var phpTimeout = $timeout;" 
?> 
</script> 

然后你会进入你粘贴到问题的剧本,并为此

$(document).ready(function() { 

    idleTimer = null; 
    logoutTimer = null; 
    idleWait = phpTimeout; //this is the variable we set earlier in the <head> of the document 
    logoutWait = 30000; //30 sec 
    timeUp = false;