2011-06-08 20 views
0

私はドロップダウンリストを2つ持っています.1つは大学であり、もう1つは支店ですから、私がしたいことは、ユーザーが最初のドロップダウンリストから大学を選択するたびに、スクリプトはその大学で利用できる支店2番目のドロップダウンリスト、つまりブランチに追加する必要があります。現在は手動で行っています。phpの同じファイルのドロップダウンリストから選択したオプションの値を取得しますか?

<?php 
mysql_connect("localhost", "root", "") or die("Connection Failed"); 
mysql_select_db("pet")or die("Connection Failed"); 
$query = "SELECT distinct insti_name FROM maininfo"; 
$result = mysql_query($query); 




$query2 = "SELECT distinct insti_name FROM maininfo"; 
$result2 = mysql_query($query2); 

?> 
<form name="myform" id="one" method="post" action="compare.php"> 
Select first college: 
<select name="coll1"> 
<?php 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
?> 
<option value="<?php echo $line['insti_name'];?>"> <?php echo $line['insti_name'];?> 
</option> 

<?php 
} 
?> 
</select> 
<br /><p>Select the branch: 


<select name="brn1"> 

<option value="0" selected>(please select:)</option> 
<option value="ce">Civil</option> 
<option value="cse">Computer Science Engineering</option> 
<option value="ec">Electronics and Communication</option> 
<option value="it">Information Technology</option> 
<option value="aeie">AEIE</option> 
<option value="mech">Mechanical</option> 
<option value="elect elex">Elect Elex</option> 
<option value="ee">Electricals</option> 
<option value="el">EL</option> 
<option value="chem">Chemical</option> 
<option value="fire">Fire</option> 
<option value="ei">ei</option> 
<option value="food">Food</option> 
<option value="ip">Information Practises</option> 
<option value="bt">Bio Technology</option> 

</select> 


<br> 
<hr width=100% height=4> 

Select second college: 
<select name="coll2"> 
<?php 
while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) { 
?> 
<option value="<?php echo $line['insti_name'];?>"> <?php echo $line['insti_name'];?> 
</option> 

<?php 
} 
?> 


</select> 


<br /><p>Select the branch: 
<select name="brn2"> 
<option value="0" selected>(please select:)</option> 
<option value="ce">Civil</option> 
<option value="cse">Computer Science Engineering</option> 
<option value="ec">Electronics and Communication</option> 
<option value="it">Information Technology</option> 
<option value="aeie">AEIE</option> 
<option value="mech">Mechanical</option> 
<option value="elect elex">Elect Elex</option> 
<option value="ee">Electricals</option> 
<option value="el">EL</option> 
<option value="chem">Chemical</option> 
<option value="fire">Fire</option> 
<option value="ei">ei</option> 
<option value="food">Food</option> 
<option value="ip">Information Practises</option> 
<option value="bt">Bio Technology</option> 

</select> 
<br><br> 
<input type="submit" name="Submit" value="Compare Colleges" > 
</form> 

答えて

0

これは、AJAXを使用した方が優れたユーザーエクスペリエンスです。ただし、あなたの大学選択ボックスのオンチェンジを送信するようにフォームを設定する必要があります。それでは、PHPで、あなたは以下を行う必要があります:

if(isset($_POST['coll1'])) { 
    //query your branches and populate select same as you did for colleges. 
    //e.g. "SELECT * FROM Branches WHERE CollegeId=".mysql_real_escape_string($_POST['coll1']); 
} 

あなたは十分な情報がありますか?

+0

私は他のファイルで変数を取っていないので、これはまだ動作しますか? – Vipul

+0

フォームが送信され、それ自体に投稿された場​​合、これは機能します。フォームが別のページに送信されると、問題が発生します。 –

0

私は答えようとします。

JavaScriptを使用して喜んでいる場合は、その後、私の知る限り、PHPでそれを行うにはそれ以外の場合は、
http://api.jquery.com/change/
をjQueryの、特に を見て、あなたがフォームを送信する必要があると思いますページをリフレッシュします。 これはおそらくあなたが望むものではありません。あなたはPHP/ajax/json、 を使用することができますが、それを行うことができれば、JavaScriptを直接使うこともできます。
jQueryは簡単にする必要があります。おそらく専用のプラグインもあります。

1

PHP(サーバーで実行)とクライアント(JavaScriptのようなものが実行される)との区別を忘れないでください。

2つの方法のうちの1つがあります。まず、特定の大学で利用可能なすべてのブランチをあらかじめ入力し、クライアントで大学が変更されたときに実行されるスクリプトを作成します。表示される支店のセットが変更されます。これは、すべての大学のすべての支部を前もって取得することに注意してください。

第2に、カレッジが変更されたときに、サポートされているブランチがサーバーに照会され、表示されたブランチが変更されるスクリプトを作成できます。この方法では処理が大幅に少なくなり、通常はAJAXソリューションと呼ばれます。

どちらの方法も、大学の変化に対応してクライアントで実行されるいくつかのJavaScriptを記述することに注意してください。

0

このような場合は、ページを動的に更新するAJAXソリューションを実装するか、ページに「大学」の値をPOSTする必要があります。(私はここに座っていますこれと3つの新しい答えが入力されたばかりです...?)...あなたのデータベースを大学に基づいて再クエリーします。

+1

@Vipul @Kevin Nelsonはこれと正しい軌道にあるようです。彼の答えをチェックしてください。ただし、クライアント側のスクリプトを使用しない場合は、[自分の大学を選択]ボタンを含める必要があります。 –

0

あなたのリストが巨大な場合は、私はajaxを使用します。

もしあなたがJavaScriptを使用して配列をあらかじめ作成しておき、オプションをonchangeに変更することができます。

関連する問題