2012-04-16 11 views
0

私は以前この質問をしましたが、あまりにも複雑すぎると思いました。リストの値が選択されている場合、クエリを割り当てたいと思います。に続いてドロップステートメントを割り当てるステートメントPHP

<select name="fuel"> 
    <option value="petrol">Petrol</option> 
    <option value="diesel">Diesel</option> 
</select> 

:どのような私が達成したいことは、ユーザーがガソリンを選択した場合、あなたのselectタグの名前を付けて次のクエリ

$query = mysql_query("SELECT fuel_type from car WHERE fuel_type = 'petrol'"); 
+0

前の選択に基づいて 'options'を使って別の' select'をしたいのですか? –

+0

ええ、私はすべての車を表示する車のリストを持っています。「車から選択」*メニューを使用してこれらの結果を除外できるようにしたいのですが。 –

+0

これはページを更新することなく行われますか? –

答えて

2
<form id="filter" name="filter" method="post" action=""> 
<select id="college" name="fuel" onchange="changeValue();"> 
    <option value="petrol">Petrol</option> 
    <option value="diesel">Diesel</option> 
</select> 
<p><input name="filter" type="button" value="Filter" /></p> 
</form> 

あなたはこの

のような使用を提出する形で値を投稿したい場合

フォームを送信したくない場合は、あなたがのonchangeイベントにjqueryのを使用することができますが... JSコード

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
function changeValue() { 
    var ctext = $("#college option:selected").val(); 
    $.ajax({ url: "yourfile.php", 
    data: {"ctext":ctext}, 
    type: 'post', 
    success: function(output) { 
     //display output here 
     } 
    }); 
} 

yourfile.php

<?php 
//connect to db 
$ctext = $_POST['ctext']; 
$list = mysql_query("SELECT fuel_type from car WHERE fuel_type ='$ctext'"); 
$row = mysql_fetch_array($list); 
echo $row['fuel_type']; 
?> 
0

を実行している

<form id="filter" name="filter" method="post" action=""> 
<select> 
    <option value="petrol">Petrol</option> 
    <option value="diesel">Diesel</option> 
</select> 
<p><input name="filter" type="button" value="Filter" /></p> 
</form> 

drop down menu

あなたのPHPはあなたのような単純な何かを行うことができます:

<?php 
if(isset($_POST['cmdFilter'])) 
{ 
    echo "You selected the fuel type: " . $_POST['fuel']; 
} 
?> 

また、代わりにIDを持っているし、あなたの入力をサニタイズしてください

PS

$("#myIdforSelect").val()

ことによってそれを選択する与えることによってこれに値を渡しAJAXリクエストを送信するためにjQueryのを使用するように選択を設定することができます;)

+3

これは[リトルボビーテーブル] (http://xkcd.com/327/) –

+0

Lol、ちょうど正しい道で彼を得るのを助けようとしている。 子供に注意:すべての入力を消毒することを確認してください! – Menztrual

0

私も示唆しているが、 AJAXメソッドを使用して、これを達成するためにAJAXを使用する必要がないことを明確にしたいだけです。

フィルタオプションがあまりにも複雑でない場合や、多くのフィルタオプションを使用しない場合は、読み込み時にフィルタツリーの任意のレベルで使用可能なすべてのオプションをプルするだけで、最初は非表示にすることができます。次に、ユーザーが各セクションにドリルダウンすると、それに応じて次のセクションが表示されます(javscriptを使用)。最後に、GETまたはPOSTを使用して、選択したすべてのフォームフィールドを含む通常のフォームを送信することができます。

これは効果的にも、サーバーへの少ない呼び出しを実行している:)

をすることによって帯域幅を節約することができますが、お好みの木があまりにも複雑になる場合には、それだけでユーザーとの対話にAJAXリクエストを実行する方が良いかもしれません。