我制作了一个包含多个选择的表单。当您选择一个选项时,将启用下一个选择元素并使用 Ajax 和 PHP 将其更新为值。
但是,如果您更改前一个选项,它只会在更改后重置选择字段,而不是在更改的选项下方重置所有选择。
那么如何清除最后一个更改元素下方的所有表单元素呢?
<form action="" method="post">
Year:
<select onchange="updateField(this.value, 'brand', 'Year', 'Marke_vozila')">
<option>Select year..</option>
%year%
</select>
<br />
Brand:
<select id="brand" onchange="updateField(this.value, 'model', 'Marke_vozila', 'Model_vozila')">
</select>
<br />
Model:
<select id="model" onchange="updateField(this.value, 'type', 'Model_vozila', 'Tip_vozila')">
</select>
<br />
Type:
<select id="type" onchange="updateField(this.value, 'uitvoering', 'Tip_vozila', 'izvedba_vozila')">
</select>
<br />
Uitvoering:
<select id="uitvoering">
</select>
<br />
<input type="submit" name="submit" class="submit" value="Submit" />
</form>
阿贾克斯:
<script>
function updateField(str, id, prevvalue, value)
{
if (str=="")
{
document.getElementById(id).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(id).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","inc/form_rest.php?q="+str+"&prevvalue="+prevvalue+"&value="+value,true);
xmlhttp.send();
}
</script>