我需要在表单中创建一个依赖于dinamic的下拉列表,所以我发现这个解决方案使用JS自动提交功能:
function autoSubmit()
{
var formObject = document.forms['dados'];
formObject.submit();
}
然后我在第一个下拉列表中使用onchange事件来调用自动提交函数:
<label>Campus:</label>
<select name="campus" onchange="autoSubmit();">
<option VALUE="null"></option>
<?php
//Popula a lista com os cursos do DB
$sql = "SELECT id,nome FROM campus";
$countries = mysql_query($sql,$conn);
while($row = mysql_fetch_array($countries))
{
if($row[nome]==$campus)
echo ("<option VALUE=\"$row[nome]\" selected>$row[nome]</option>");
else
echo ("<option VALUE=\"$row[nome]\">$row[nome]</option>");
}
?>
</select>
使用此元素“campus”将被设置为在第二个下拉SELECT语句中使用:
$campus = $_POST['campus'];
...
<label>Curso:
<span class="small">curso corrente</span>
</label>
<select name="curso">
<option VALUE="null"></option>
<?php
$consulta2 = "SELECT curso FROM campus_cursos WHERE campus = \"" . $campus . "\"";
$cursoslista = mysql_query($consulta2,$conn);
while($row = mysql_fetch_array($cursoslista))
{
echo ("<option VALUE=\"$row[curso]\">$row[curso]</option>");
}
?>
</select>
这段代码正在运行,但问题是,这样我就无法在表单中设置一个动作属性,因为如果我每次第一次下拉列表更改时都会这样做,它会重定向到动作的URL.this是有效的表单:
<form name="dados" method="POST" onsubmit="return validar();">
没有动作属性我不能使用提交按钮将所有其他元素的数据发送到正确的URL。有一种方法吗?
答案 0 :(得分:0)
我使用a&#34;触发的ajax脚本解决了这个问题&#34; event.the ajax脚本调用一个返回元素数组的外部文件。脚本使用这些元素填充下拉列表。
答案 1 :(得分:0)
您应该使用Ajax代码填充第二个下拉值。
在表格页面上:
<label>Campus:</label>
<select name="campus" id="campus">
<option VALUE="null"></option>
<?php
//Popula a lista com os cursos do DB
$sql = "SELECT id,nome FROM campus";
$countries = mysql_query($sql,$conn);
while($row = mysql_fetch_array($countries))
{
if($row[nome]==$campus)
echo ("<option VALUE=\"$row[nome]\" selected>$row[nome]</option>");
else
echo ("<option VALUE=\"$row[nome]\">$row[nome]</option>");
}
?>
</select>
<label>Curso:
<span class="small">curso corrente</span>
</label>
<select name="curso" id="curso">
</select>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#campus').change(function(){
var campusName = $(this).val();
$('#curso').load('generateCurso.php?campus='+campusName);
});
});
</script>
编写一个名为generateCurso.php的
的PHP文件<?php
$campus = $_GET['campus'];
$consulta2 = "SELECT curso FROM campus_cursos WHERE campus = \"" . $campus . "\"";
$cursoslista = mysql_query($consulta2,$conn);
?>
<option VALUE="null"></option>
<?php
while($row = mysql_fetch_array($cursoslista))
{
echo ("<option VALUE=\"$row[curso]\">$row[curso]</option>");
}
?>