在php中运行javascript

Alg*_*tic 1 html javascript php

我有这个javascript,我想在PHP中运行,代码贝娄应该在一个表单中提交然后然后打印它但是当提交时javascript没有执行,输出就是简单

var text = document.getElementById(\'course1\').options[document.getElementById(\'course1\').selectedIndex].text; document.write(text);
Run Code Online (Sandbox Code Playgroud)

这是整件事,

            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>
Run Code Online (Sandbox Code Playgroud)

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

Den*_*ret 6

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

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

  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;" ...
Run Code Online (Sandbox Code Playgroud)