Ajax (または Jquery) での初めてのプログラミング経験なので、どんな種類の助けにも感謝します。私がやろうとしているのは、HTMLフォームに2つの選択入力があることです。最初の選択が変更されたとき(onchange)、その値を使用してphpで2番目の選択をフィルタリングし、そのオプションを動的に生成する必要があります。最初の選択のみをフォーム全体を送信せずに発生します。次のコードを試しましたが、最初の選択が変更されるたびにフォーム全体が送信されます。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 をどこに置いても、ページ全体がその中に送信されます。同じページで2つの選択を使用する別のこと
form action="<?php echo $_SERVER['PHP_SELF'];?>