我有这个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>
我错过了什么吗? 我真正想要的是在选项中提交文本而不是选项的值。
答案 0 :(得分:6)
getElementById
只能找到ID为course_1的元素,而不是名称。
不要将script元素放在input元素
调用时必须准备好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;" ...
答案 1 :(得分:1)
您的问题是,您在<script>
标记的value
属性中放置了<input>
标记。这不是有效的HTML或JavaScript,也无法使用。
答案 2 :(得分:0)
为什么你不发布你得到的实际错误?实际上这种方法(包括javascript代码到php标签中)并不是很好。如果你想在任何页面上使用javascript,你只需要将它放在脚本标签下的页面顶部。 尝试一下,会帮助你..!