1

我有这个我想在 php 中运行的 javascript,下面的代码应该以表单形式提交,然后打印它但是当提交时 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>

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

4

3 回答 3

6
  1. getElementById只会找到 id 为 course_1 的元素,而不是名称。

  2. 不要将脚本元素放在输入元素中

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

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

编辑 :

如果您想要的是在用户选择另一个选项时更改隐藏的输入,那么您可以这样做:

 <input type=hidden name=course_1 id=course_1>
 <select onchange="document.getElementById('course_1').value=this.options[this.selectedIndex].text;" ...
于 2012-08-20T12:49:51.377 回答
1

您的问题是您将<script>标签放在标签的value属性内<input>。这不是有效的 HTML 或 JavaScript,并且不会起作用。

于 2012-08-20T12:50:35.143 回答
0

why you don't post what is the actual error you got? actually this approach (including the javascript code into php tags) is not good at all.if you want to use javascript on any page, you just have to put it on the very top of your page under the script tags. try it, will help u ..!

于 2012-08-20T13:08:11.087 回答