将下拉列表“选项值”输入到javascript函数中

时间:2014-03-27 08:55:43

标签: javascript php html drop-down-menu

我正在尝试创建一个文档标题计时器功能,它反映用户使用下拉列表选择的登录时间。

到目前为止,我已经让计时器工作的默认时间为30秒,我在将下拉“选项值”链接到我的javascript时遇到问题。

我不明白的是,我的变量$ droptime不会动态地从下拉“选项值”中获取值?

的index.php

<form id="form1" align="left" method="POST" action="second.php">
<select name ="droptime">
 <option id="5" value="5" >5 Seconds</option>
 <option id="10" value="10">10 Seconds</option>
 <option id="15" value="15">15 Seconds</option>
 <option id="30" value="30">30 Seconds</option>
</select>   
</form> 

这是我的文档标题的javascript

second.php

<?php
session_start();
$drop_time = $_SESSION['droptimeD'];
?>

<script language="javascript" type="text/javascript" src= "index.php">
    <!-- //

    var m = <?php echo $drop_time; ?> ;
    var i = new Number(m);
    function titleTimer(){
    document.title = "Time till logout - " + i + " seconds.";
    i -= 1;
    if(i < 0){
    document.title = "Please login Again"
    window.location.replace("index.php");
    }else{
    setTimeout("titleTimer()", 1000);
    }
    }
    // -->
    </script>

如果可能存在重复的问题,我道歉。我确实通过论坛搜索并尝试了多种解决方案,但我怀疑我错过了让它发挥作用的关键部分。

2 个答案:

答案 0 :(得分:3)

正如mesutozer所说,你不能在javascript中使用php变量。您必须使用类似

的内容从html文档中获取值
var i = document.getElementsByName('droptime')[0].value;

答案 1 :(得分:0)

它的abit很奇怪,但我正在解析整个地方的数据加上混乱。我也混淆了php和java脚本上下文

的index.php

<form id="form1" align="left" method="POST" action="second.php">
<select name ="droptime">
 <option id="5" value="5" >5 Seconds</option>
 <option id="10" value="10">10 Seconds</option>
 <option id="15" value="15">15 Seconds</option>
 <option id="30" value="30">30 Seconds</option>
</select>   
</form> 

这是我的文档标题的javascript

second.php

<?php
session_start();
$drop_time = $_SESSION['droptimeD'];
?>

<script language="javascript" type="text/javascript" src= "index.php">
    <!-- //

    var m = <?php echo $drop_time; ?> ;
    var i = new Number(m);
    function titleTimer(){
    document.title = "Time till logout - " + i + " seconds.";
    i -= 1;
    if(i < 0){
    document.title = "Please login Again"
    window.location.replace("index.php");
    }else{
    setTimeout("titleTimer()", 1000);
    }
    }
    // -->
    </script>