0

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'];?>
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 に答える