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>

ドロップダウンメニュー

私が達成したいのは、ユーザーがガソリンを選択した場合、次のクエリを実行することです

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

3 に答える 3

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>

フォームに値を投稿する場合は、次のように使用してください

$ctext = $_POST['fuel']; 
$list = mysql_query("SELECT fuel_type from car WHERE fuel_type ='$ctext'");
$row = mysql_fetch_array($list);
//process $row

フォームを送信したくない場合は、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'];
?>
于 2012-04-16T05:59:16.743 に答える
0

選択タグに名前を付けます。

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

次に、PHPで次のような簡単なことを行うことができます。

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

代わりにselectにIDを設定し、JQueryを使用してajaxリクエストを送信し、次の方法でselectに値を渡すこともできます。$("#myIdforSelect").val()

PS

必ず入力をサニタイズしてください;)

于 2012-04-16T03:27:08.363 に答える
0

AJAXメソッドも提案しますが、これを実現するためにAJAXを使用する必要がないことを明確にしておきたいと思います。

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

これにより、サーバーへの呼び出しを減らすことで、帯域幅を効果的に節約できます:)

ただし、選択ツリーが複雑になりすぎる場合は、ユーザーの操作でAJAXリクエストを実行する方がよい場合があります。

于 2012-04-16T06:03:34.720 に答える