我有一个html表单,将数据发布到php文件进行处理,在这个表单上有一个动态生成的组合框,使用javascript从php文件生成。加载页面时,组合框显示和运行正常,但是在提交表单时,不会发布此框中的值。
JavaScript函数是
function showUser(str) {
if (str == "") {
document.getElementById("selSubCat").innerHTML = "";
return;
} else {
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("selSubCat").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","getSubCats.php?Cat="+str,true);
xmlhttp.send();
}
}
html是
<td >Category:</td>
<td >
<select name="Cats" onchange="showUser(this.value)" ><?
$qryCats="SELECT * FROM tblCategories";
$resCats=mysql_query($qryCats,$dbMain);
while($rowCats = mysql_fetch_array($resCats)){
echo "<option value='".$rowCats['Name']."'>".$rowCats['Name']."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td >Sub Category:</td>
<td id="selSubCat">
</td>
</tr>
和php文件:
<?
include("dbconfig.php");
$cat=$_GET['Cat'];
$qryCats="SELECT * FROM tblSubCats WHERE Parent='" .$cat. "'";
$resCats=mysql_query($qryCats,$dbMain);
if ($numrow=mysql_num_rows($resCats)>0){
echo "<select name='subCats'>";
while($rowCats = mysql_fetch_array($resCats)){
echo "<option value='" .$rowCats['Name']. "'>" .$rowCats['Name']. "</option>";
}
echo "</select>";
}
else{
echo " There are no sub categories ";
}
?>
任何建议都将受到赞赏,我无法弄清楚为什么除子类别以外的所有其他内容都已发布
答案 0 :(得分:1)
查看name
属性。在HTML
Cats
,但在您的代码中,您使用的是$_GET['Cat'];
它应该是
$cat=$_GET['Cats'];
答案 1 :(得分:0)
解决了,我在html页面上有一个表格,里面有表格。我交换了标签,以便表格在表格内,动态字段发布得很好。不知道为什么在表格中有一个表格会阻止这些发布,但至少它现在可以正常工作。