0

MySQL データベースからデータを読み取る 2 つのドロップダウン メニューがあります。データベースへの接続にはPHPを使用しています。2 番目のドロップダウンは、最初のドロップダウンでの選択に基づいて設定されます。プロセスは次のように思えます(間違っている場合は修正してください):

  1. PHP セクションは MySQL データベースに接続し、dropdown1 に入力します。
  2. ユーザーが dropdown1 で値を選択すると、onchange イベントが呼び出されます。
  3. onchange 関数 (Javascript) 内で、クエリが MySQL データベースに送信され、dropdown1 の選択に基づいて dropdown2 の値が取得されます (ここでも PHP ですよね?)。
  4. dropdown2 が入力されます。

このタスクを実行するために Javascript と PHP を一緒に使用する方法がわかりません (上記の番号 3)。または、これはまったく行う方法ではないかもしれません。お知らせ下さい!

これが私のコードです。以下に示すように、PHP コード内に Javascript 関数を入れていますが、これは間違っていると思います。そこで行き詰まりました!

<php
$sql="SELECT distinct category FROM table1";
$result=mysql_query($sql);

$optionsCat="";
while($row = mysql_fetch_row($result)){
    $optionsCat.="<option value=\"$row[0]\">$row[0]</option>";
}

function genSubCat($catID){
$sql="SELECT distinct subcategory FROM table1 where category=".$catID;
$result=mysql_query($sql);

$optionsSubCat="";
while($row = mysql_fetch_row($result)){
    $optionsSubCat.="<option value=\"$row[0]\">$row[0]</option>";
}
}

?>
<select name="catDropDown" onChange="genSubCat(this)">
    <option value="0">Select category</option>
    <?php echo $optionsCat?>
</select>
<select name="subcategoryDropDown">
    <option value="0">Select subcategory</option>
    <?php echo $optionsSubCat?>
</select>
4

2 に答える 2

1

ここに入力のある簡単なページがあります。その中に単語を入力してから、入力をクリックしてください。Ajaxはmyphp.phpスクリプトを呼び出し、元の部門の下に入力したのと同じ単語を返します。

test.html

<!DOCTYPE html>
<html lang="en">
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript"> 
$(document).ready(function() {
$("#faq_search_input").blur(function(){
   var faq_search_input = $(this).val();
   var dataString = 'keyword='+ faq_search_input;
   if(faq_search_input.length>1){
      $.ajax({type: "GET", url: "myphp.php", data: dataString,
              success: function(server_response) {
                 document.getElementById("searchresultdata").style.display = "block";
                 $('#searchresultdata').html(server_response).show();
              }
          });
       }
       return false;
   });
});

</script>
  </head>
  <body>
<div class="searchholder">
    <input  name="query" class="quicksearch" type="text" id="faq_search_input" />
<div id="searchresultdata" class="searchresults" style="display:none;"> </div>
</div>
  </body>
</html>

myphp.php

 <?PHP
    echo $_GET['keyword'];
 ?>
于 2012-12-14T21:55:32.423 に答える
0

Web ベースの言語を使用する方法について、まず自分で勉強する必要があると思います。あなたが提供したコードは完全に間違っています。HTML 経由で PHP コードにアクセスしようとしていますか? つまり、さあ!

最初のルール: サーバー ベースの言語は、クライアント ベースの言語と通信できません。

リクエストを送信してレスポンスを取得する必要があり、そのドロップダウンを行う方法は、PHP コードにリクエストを送信し、そこから関連データを取得することです。Trufa がコメントで言ったように、 jQueryライブラリを見たいと思うかもしれませんが、その前にAJAXをチェックする必要があると思います。

于 2012-12-14T21:46:58.207 に答える