0

平和をお祈りします。私はAjaxを初めて使用します。問題は、データベースに接続された3つのドロップダウンリストがあり、最初のリストは「名前」、2番目のリストは「年齢」、3番目のリストは「国"!したがって、データベースに接続し、最初のリスト「name」でデータを取得し、Ajaxを使用して、最初のリストのオプションを選択し、「age」という2番目のリストに入れた後、一致するデータを正常に取得しました。 、問題は、「age」という2番目のリストでまったく同じ方法を使用して、「country」という3番目のリストに一致するデータを取得すると、機能しないことです。だから私を助けてください、私はこの例を使ってAjaxを学び、それからより大きな実際のプロジェクトに適用しています!ここにコードがあります:-最初に、home.phpページ:-

<?php
include "config.php";
?>
<html> 
<head> 
<script type="text/javascript">
function agematch() {
 if (window.XMLHttpRequest) {
  xmlhttp = new XMLHttpRequest();
} 
 else {
 xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
 }

xmlhttp.onreadystatechange = function() {
  if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {

  document.getElementById('age').innerHTML = xmlhttp.responseText;
  }

} 
xmlhttp.open('GET', 'connection.inc.php?name='+document.ajax.name.value, true );
xmlhttp.send();

}

function countrymatch() {
 if (window.XMLHttpRequest) {
  xmlhttp = new XMLHttpRequest();
} 
 else {
 xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
 }

xmlhttp.onreadystatechange = function() {
  if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {

  document.getElementById('country').innerHTML = xmlhttp.responseText;
  }

} 
xmlhttp.open('GET', 'country.inc.php?age='+document.ajax.age.value, true );
xmlhttp.send();

}

</script>
</head>
<body> 
<form id="ajax" name="ajax" > 
Choose your name : <select name="name" id="name" select="selected"  onchange="agematch();"> <option>  </option> 
 <?php

   $query = "SELECT DISTINCT name FROM info";
   $result = mysql_query($query);
   while($row = mysql_fetch_array($result)){
   echo"<option  value ='".$row[0]."'> '".@$row[0]."'</option>";
                                }   
 ?>
</select>
Age : <select id="age" name="age" onchange="countrymatch();">  </select>
country : <select id="country" name="country"> <option> </option> </select>

</form>
</body>
</html>

さて、最初のAjax呼び出しのページ:-

<?php
include "config.php";
echo " <option>  </option> " ;
if(isset( $_GET['name']) ) {
  @$name = $_GET['name'];
  }

  $query = "SELECT age FROM info WHERE name = '".@$name."' "; 
  $result = mysql_query($query);
    while ($query_row = mysql_fetch_array($result)) {

      echo " <option  value ='".$query_row[0]."'> $query_row[0]</option> ";
      }

 ?>

次に、2番目のAjaxのページで、3番目のドロップメニューを呼び出します:-

<?php
include "config.php"; 

  if (isset( $_GET['age']) ) {
     @$age=$_GET['age'];
   }     

  $query = "SELECT country FROM info WHERE name='".@$name."' AND age='".@$age."'  ";
  $result= mysql_query($query);
  while  ($query_row = mysql_fetch_array($result)) {

   echo " <option value = '".$query_row[0]."'> $query_row[0] </option> ";

  }

 ?>

ご覧のとおり、ここにコードがあります。もちろん、「config.php」というページを介してデータベースに接続しているので、この問題を解決し、データベースから3番目のドロップにデータを取得するのを手伝ってほしいです。ダウンリスト「国」。前もって感謝します!

4

1 に答える 1

1

name2番目の呼び出しを渡していません。

交換

xmlhttp.open('GET', 'country.inc.php?age='+document.ajax.age.value, true );

xmlhttp.open('GET', 'country.inc.php?age='+document.ajax.age.value+'&name='+document.ajax.name.value, true );

お役に立てば幸いです。

于 2013-01-28T11:23:33.317 に答える