在php中运行javascript

时间:2012-08-20 12:47:38

标签: php javascript html

我有这个javascript,我想在php中运行, 下面的代码应该以表格形式提交,然后打印出来 但是当提交时,javascript没有执行,输出只是

var text = document.getElementById(\'course1\').options[document.getElementById(\'course1\').selectedIndex].text; document.write(text);

这就是整个事情,

            echo "<form name\"find\" action=\"postEnrolled.php\" method=\"get\" class=\"required\" onsubmit=\"return validate(this);\">";
            echo "<table width=\"225\" border=\"0\" align=\"center\" >";
            echo "<tr>";
            echo "<td width=\"181\"><label>Course#1:</label> <select name=\"dep1\" style=\"width:190px\" class=\"dep1\">";
            echo "<option selected=\"selected\" value=\"\">Select Department</option>";


            include('db.php');
            $sql=mysql_query("select id,data from data where weight='1'");
            while($row=mysql_fetch_array($sql))
            {
                $id = $row['id'];
                $data = $row['data'];
                echo '<option value="'.$id.'">'.$data.'</option>';
            } 


            echo "</select><br/></td>";
            echo "<td width=\"267\">";


            echo "<label>&nbsp;</label><select name=\"course1\" class=\"course1\" style=\"width:200px\">";
            echo "<option selected=\"selected\" value=\"\">Select Course</option>";

            echo "</select>";

            echo "<input type=\"hidden\" name=\"course_1\" value=\"

            <script language='javascript' > 

                    var text = document.getElementById('course1').options[document.getElementById('course1').selectedIndex].text;
                    document.write(text);


            </script>

我错过了什么吗? 我真正想要的是在选项中提交文本而不是选项的值。

3 个答案:

答案 0 :(得分:6)

  1. getElementById只能找到ID为course_1的元素,而不是名称。

  2. 不要将script元素放在input元素

  3. 调用时必须准备好DOM(use document.onload=function(){...yourcodehere...};

  4. 乍一看,没有PHP真正涉及此问题。但是,您是否知道在更改选项的值时,代码不会被执行?如果这就是您所需要的,请使用onchange="yourcodehere;"。但是因为它是一个隐藏的领域,也许你应该描述你真正想要实现的目标。

    编辑:

    如果您想要的是在用户选择其他选项时更改隐藏的输入,请按以下步骤操作:

     <input type=hidden name=course_1 id=course_1>
     <select onchange="document.getElementById('course_1').value=this.options[this.selectedIndex].text;" ...
    

答案 1 :(得分:1)

您的问题是,您在<script>标记的value属性中放置了<input>标记。这不是有效的HTML或JavaScript,也无法使用。

答案 2 :(得分:0)

为什么你不发布你得到的实际错误?实际上这种方法(包括javascript代码到php标签中)并不是很好。如果你想在任何页面上使用javascript,你只需要将它放在脚本标签下的页面顶部。 尝试一下,会帮助你..!