在php中运行javascript


Running javascript inside php

我有这个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>

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

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

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

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

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

编辑:

如果你想要的是在用户选择另一个选项时更改隐藏的输入,下面是你可以做的:

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

您的问题是将<script>标记放入<input>标记的value属性中。这不是有效的HTML或JavaScript,也不起作用。

为什么不公布实际错误是什么?实际上,这种方法(包括php标记中的javascript代码)根本不好。如果你想在任何页面上使用javascript,你只需要把它放在页面的最上面的script标记下。试试看,会帮你的。。!