0

私はコーディングを学ぶためのウェブサイトを作成しており、データベーステーブルから1つが入力される2つの選択ドロップダウンを作成しています->猫。もう 1 つの選択ドロップダウンは、テーブル -> サブキャットから入力されます。cat と subcat のデータベースは次のようになります。

テーブルキャット

ID (整数 15) || 猫(varchar 75) || 猫 数値 (int 3)

表のサブキャット

ID (整数 15) || サブキャット (varchar 75) || サブキャット (varchar 75) || 猫番号 (int 3)

すべての subcat 行には、 cat -> number の行に対応する catnumber があります。たとえば、Cat の行に 2 の番号を持つレストランがある場合、Catnumber が 2 の American Food と Chinese Food もある場合、それらは対応しています。

これは、3 つの猫のドロップダウンすべてについてデータベースから引き出すためのコードです。

<p><b>Cat1:</b><br />
<?php
  $query="SELECT id,cat FROM cat";
  $result = mysql_query ($query);
  echo"<select name='cselect1' class='e1'><option value='0'>Please Select A Category</option>";
  // printing the list box select command
  while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
  echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."</option>";

  }

  echo"</select>";
?>

<!-- Next CAT -->

<p><b>Cat2:</b><br />
<?php
  $query="SELECT id,cat FROM cat";
  $result = mysql_query ($query);
  echo"<select name='cselect2' class='e1'><option value='0'>Please Select A Category</option>";
  // printing the list box select command
  while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
  echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."</option>";

  }

  echo"</select>";
?>

<!-- Next CAT -->

<p><b>Cat3:</b><br />
<?php
  $query="SELECT id,cat FROM cat";
  $result = mysql_query ($query);
  echo"<select name='cselect3' class='e1'><option value='0'>Please Select A Category</option>";
  // printing the list box select command
  while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
  echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."</option>";

  }

  echo"</select>";
?>

そして、これが私のサブキャットドロップダウンの3つすべてについてデータベースから引き出すための私のコードです

<p><b>Subcat1:</b><br />
<?php
  $query="SELECT * FROM subcat WHERE catnumber='1' ";
  $result = mysql_query ($query);
  echo"<select name='sselect1' class='e1'><option value='0'>Please Select A Category</option>";
  // printing the list box select command
  while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
  echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>";

  }

  echo"</select>";
?>
<p><b>Subcat2:</b><br />
<?php
  $query="SELECT id,subcat FROM subcat WHERE catnumber='1' ";
  $result = mysql_query ($query);
  echo"<select name='sselect2' class='e1'><option value='0'>Please Select A Category</option>";
  // printing the list box select command
  while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
  echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>";

  }

  echo"</select>";
?> 
<p><b>Subcat3:</b><br />
<?php
  $query="SELECT id,subcat FROM subcat WHERE catnumber='1' ";
  $result = mysql_query ($query);
  echo"<select name='sselect3' class='e1'><option value='0'>Please Select A Category</option>";
  // printing the list box select command
  while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
  echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>";

  }

  echo"</select>";
?>

そのため、現在、すべての subcat select は、番号が 1 の猫のすべてのサブカテゴリ (レストラン) を取得しようとしています。猫の選択で選択されたものを取得して(ページを更新せずに)、対応するサブキャットの選択に猫の番号に対応するサブキャットのリストを表示するにはどうすればよいですか?

↑説明が下手で大変申し訳ありません。結局、私は基本的にYelpsのようにしたい - >ここ

助けてくれてありがとう!

4

1 に答える 1

2

バックグラウンドでデータベースにクエリを実行するには、ajax 呼び出しを行い、結果を (HTML として) 返し、サブカテゴリの選択内容を入力する必要があります。

<select name="cat" id="cat">...</select>
<select name="subCat" id="subCat">...</select>

<script language="javascript">
    $('#cat').change(function() {
        $.post('getSubcat.php', {
           cat: $(this).val()
        }, function(data) {
            $("#subCat").html(data);
        }
    });
</script>

getSubcat.php スクリプトが結果を次のようにエコーすることを確認してください。

<option value='whatever'>Label</option>
<option value='whatever2'>Label2</option> ...

getSubcat.php は、単純なクエリ/出力スクリプトになります。

<?php
$category = $_POST['cat'];

$query = "SELECT * FROM subcategories WHERE parent_category = " . $category;
$result = mysql_query($query);

echo "<option value='0'>Select a subcategory</option>";
while($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['id'] . "'>" . $row['subcategory_name'] . "</option>";
}

注: これは jQuery を使用します。ページに jQuery ライブラリが含まれていることを確認してください。

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
于 2012-07-25T18:17:24.527 に答える