2012-04-19 18 views
0

私は2つの選択ドロップダウンを持つフォームを持っています。 1つは国と大学がある。国のドロップダウンは、入力されたすべての国を示すMySQLデータベースから入力されます。最初は、大学のドロップダウンにシステム内のすべての大学が設定されていることを願っていますが、エンドユーザーはシステムを動的にしたいと思っており、現時点ではドロップダウンにデータが表示されません。私がやりたい何HTML select onchange update query

<select name="academicdropdown" onchange="countrysortlist()" style="width:178px"> 
<option value"">Sort By Country</option> 
<option value"All" style="font-weight:bold; font-style:italic">All Countries</option> 
<?php 

while ($row=mysqli_fetch_array($countryresult2)) { 

    $id = $row["country_id"]; 
    $country = $row["country"]; 
    echo "<option value='$id'>$country</option>\n"; 
} 
?> 
</select> 

<select name="universitydropdown" onclick="unilist()" style="width:154px"> 
<option value"">University</option> 
<?php 

    if(isset($_SESSION['appformuniversity'])) { 

    if($_SESSION['appformacademic'] == "universitylist") { 

     $universityinput = $_SESSION['appformuniversitylist']; 
                while ($row=mysqli_fetch_array($universityresult)) { 
                 $universityid = $row["university_id"]; 
                   $university = $row["university_name"]; 
                 if($universityid == $universityinput) { 
                  echo "<option value='$universityid' selected='selected'>$university</option>\n"; 
                 } 
     else { 
                 echo "<option value='$universityid'>$university</option>\n"; 
                 } 
    } 
    } 
else { 
               while ($row=mysqli_fetch_array($universityresult)) { 

     $universityid = $row["university_id"]; 
     $university = $row["university_name"]; 
     echo "<option value='$universityid'>$university</option>\n"; 
                } 
} 
} 
else { 

    while ($row=mysqli_fetch_array($universityresult)) { 

      $universityid = $row["university_id"]; 
    $university = $row["university_name"]; 
      echo "<option value='$universityid'>$university</option>\n"; 
    } 
} 
?> 
</select></td></tr> 

は、ユーザーが国のドロップダウンリストで国のいずれかを選択した場合、それは大学がその国の中にある大学とドロップダウン更新しますです。私はあなたがonchangeイベントを使用しなければならないことを知っていますが、私はスクリプト側をどうやって行うのか分かりません。どんな助けもありがとう。現時点では

私の大学のクエリは、任意の助けを事前に

$universitysql = "SELECT * FROM university ORDER BY university_name ASC" ; 

おかげです。とても有難い。

答えて

0
You have to use ajax for this. If you know Jquery it would be easier. Just include the 
jquery.js file . Then write the ajax in the onchange function of the country dropdown. 
In the onchange method just pass the id of the country. Then in your ajax method send 
id to a php page. In that page generate the whole option list from the sql query using 
that country id . Make a relation between two tables i.e every university row should 
contain country id. Then echo the option list. In your ajax method just change the 
university list dynamically using innerhtml. I am giving you example 

1. onchange on country select 

onchange="countrysortlist(this.value)" 

2. ajax method in countrysortlist function 

    $.ajax({ 
    type: 'POST', 
    url: 'yourpage.php', // change name 
    data: "countryid="+id, // country id 
    success: function(data) { // returns date 
      $('.result').html(data); // result should be the class name of university dropdown 

    } 
}); 
+0

あなたが言ったように私はすべてを作りました。私はjqueryファイルを含めて、私は使用している別のjsファイルのcountrysortlist関数にajaxコードを入れて、私は私の結果を取得し、クエリから結果を印刷する私のPHPページを行っている。しかし、私が国を選ぶとき、何も変わらないのですか? (私はいくつかのサンプル大学をテストのために入れました)あなたは何が間違っているのか知っていますか?ありがとう。 –

+0

私はそれ以来、何かをするために国の選択を持っているが、大学のドロップダウンには何も現れない。ページが読み込まれるとすべての大学が表示されますが、国ごとに並べ替えるとuniドロップダウンが空白になり、その国のユニスは表示されません。彼らはなぜ表示されていない任意のアイデア?別の質問があります:私はエコーやプリントを使用するのですか?上記のコードで示したif文を含める必要がありますか?また、私がすでにやっているように、すべての大学に負​​荷をかけてもらうことができますか、またはこれが実行されていない理由に影響していますか? –

+0

1つのことをしてください。成功の中のデータを警告するだけです。関数は、PHPページからどの値が来ているかを確認します。そうでなければ、あなたはPHPのコードを変更する必要があります。 –

1

あなたはJavaScriptを使用して、このような何かを行うことができます:あなたが選択オプションを変更すると

<script type="text/javascript"> 
function countrysortlist() 
{ 
    document.form_name.submit(); 
} 
</script> 

は、サイトがフォーム

<form name='form_name' action='' method='get'> 
<select name="academicdropdown" onchange="countrysortlist()" style="width:178px"> 
... 
</select> 
</form> 

を提出更新するクエリは、ちょうどロードされます国ID内の大学が提出されました。

<?php 
$country_id = $_GET['academicdropdown']; 
$universitysql = "SELECT * FROM university where countryid = '$country_id' ORDER BY university_name ASC" ; 
?>