值不会从ajax类生成的元素中发布

时间:2011-04-08 15:09:35

标签: php ajax select

这是HTML表单

echo "<tr><td>Course</td><td><select name='Course' onchange='branch_selector(this.value)'>";
            echo "<option value='B.Tech'>B.Tech</option>";
            echo "<option value='M.Tech'>M.Tech</option>";
            echo "<option value='MBA'>MBA</option>";
            echo "<option value='MCA'>MCA</option>";
            echo "</select></td></tr>";
echo "<tr><td><div id='branch_div_name'></div></td><td><div id='branch_div'></div></td></tr>";

这是javascript代码

function branch_selector(val) {
    if(val=='B.Tech' || val=='M.Tech') {
        show_name('branch_div_name','Branch');
        var xmlhttp;
        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('branch_div').innerHTML=xmlhttp.responseText;
            }


        }       
        xmlhttp.open("GET","branch_selector.php",true);
        xmlhttp.send();

    }
    else {
        document.getElementById("branch_div").innerHTML="";
        disappear_name('branch_div_name');
    }
}

这是在后台运行的PHP代码

$result = mysql_query("SELECT DISTINCT Branch FROM student_main ORDER BY Branch ASC") or die(mysql_error());
echo "<select name='Branch' id='Branch' onchange='harb()'>";
while($row = mysql_fetch_array($result)) {
    if($row[0]=='' or $row[0]=='N/A') {
        continue;
    }
    else {
    echo "<option value='".$row[0]."'>".$row[0]."</option>";
}
}

echo "</select>";

生成下拉列表没有任何问题。但是当提交表单时,没有设置$ _POST ['Branch']。 请帮忙

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了这个问题,解决方案不是最好的,但它完成了工作。 我现在使用的是一个隐藏字段,值是这个字段是根据Branch的值设置的。当用户单击提交时,使用Javascript设置该值。 它的工作正常,没有任何问题,但如果有人有更好的解决方案,请分享。