0

这是我在 Ajax(或 Jquery)中的第一次编程经验,所以我感谢任何形式的帮助。我想要做的是我的 html 表单中有 2 个选择输入,当第一个选择被更改(onchange)时,我想要它的值来使用它来过滤 php 中的第二个选择以动态生成它的选项,那必须在没有提交整个表单的情况下发生,只有第一个选择。我尝试了以下代码,但是每当第一个选择更改时,它都会提交整个表单。ajax函数:

function showKadaa(str)
{
if (str=="")
{
document.getElementById("txtHint").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("kop").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","annonce.php?mid="+str,true);
xmlhttp.send();
}  

带有 php 的 html 代码部分:

<?php if(isset($_GET['mid']))
$q=$_GET['mid'];
else $q=$_SESSION['mid'];?>

//code goes here

<tr><td>Kadaa:</td><td><div id="kop"><select name="kadaa" id="kad" ><option value="default">[Choisir     Kadaa]</option>

<?php
            if(login_db()){                     
                $req="SELECT `nom_kadaa`,`id` FROM `kadaa` WHERE `id_mohafaza`=".$q.""; 
                echo $req;
                $kadaa="";
                if($res=mysql_query($req)){
                    while($l=mysql_fetch_array($res)){
                        echo "<option value=".$l[1].">".$l[0]."</option>";
                    }                       
                }
            }               
        ?>
</select></div></td></tr>

PS:无论我把 id="kop"
的 div 放在哪里,整个页面都会在其中提交。我在同一页面上使用两个选择的另一件事

form action="<?php echo $_SERVER['PHP_SELF'];?>
4

1 回答 1

0

获取字段值:jquery 很乐意使用

$("#IdOfElement").val();

顺便说一句,jquery 有很多更方便的 ajax 方法:

$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});
于 2013-03-26T14:31:58.000 回答