我有这个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> </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>
我是不是错过了什么?我真正想要的是提交选项中的文本,而不是选项的值。
-
getElementById
将只找到id为course_1的元素,而不是名称。 -
不要将脚本元素放在输入元素中
-
调用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标记下。试试看,会帮你的。。!