2012-05-12 8 views
0

私は本当に混乱しています。私はSQLデータベースからの情報を使用してSelectドロップダウンメニューを作成したいと思います。すべてが素晴らしい作品ですが、私には1つの質問があります。ユーザーが選択を変更するたびに選択ドロップを更新するにはどうすればいいですか?質問は本当に混乱していると私は本当にそれを記述する方法を知っていない..私はPHPでコードを設定し、私のページの中に入れてください。ここでのコードは次のとおりです。今SQL情報で選択ドロップダウン(html)を更新する

<?php 
    //creating a function to generate the second select menu 
function createNameSelect(){ 
$options = "<select id='name'>" 
$sql = "SELECT * FROM names WHERE category = 'c'"; 
$result = mysql_query($sql); 

$options.=" 
    <option value='nothing'>-- select an option --</option> 
"; 

while ($row=mysql_fetch_array($result)){ 
    $name=$row['name']; 
    $options.=" 
    <option value='$name'>$name</option> 
"; 
} 

$options.="</select>"; 

return "$options"; 

} 
?> 



<!DOCTYPE html> 
.... 
<select id = c> 
    <option value ='1'>option 1</option> 
    <option value ='2'>option 2</option> 
    <option value ='3'>option 3</option> 
</select> 
<?php createNameSelect(); ?> 

.... 
</html> 

、それは完璧な、しかし、それは最初のものを、次の選択メニューを更新しません動作します。 デフォルトオプションから生成されたメニューには表示されません。 私はそれを修正するために何ができますか?そこにjsの解決策はありますか?

ありがとうございます!

+0

最初の「 2番目の選択は、クエリを更新し、ページを更新することなく再度生成することです – Baruch

答えて

0

PHPは、サーバー側のスクリプトでのDBに変更された値を保存

instandしてみてください - それは上で正確に一度実行されますがサーバーに送信され、クライアント(ビューアブラウザ)に出力が送信されます。したがって、ユーザが最初の選択を変更したときに、PHP関数を繰り返し呼び出すことはできません。

あなたがする必要があることは、最初の選択に対して有効なオプションが与えられたときに、別のPHPファイルを作成して、2番目の選択のコードを出力することです。次に、AJAXを使用してjQuery .get()関数を使用してPHPファイルを呼び出し、2番目の選択内容を取得した結果に置き換えます。

0

この

<select id = c ONCHANGE="location = this.options[this.selectedIndex].value;"> 

コールアヤックスと

​​
関連する問題