1

同様の質問をする前に質問する人もいますが、私の問題に答える人はいません。ajaxとphpについて質問があります。どちらも比較的初心者です。

私がやろうとしているのは、いわゆるチェーン選択ボックスです。2つのドロップダウンメニューが欲しいのですが。最初の値から値を選択すると、2番目のドロップダウンメニューにmysqlデータベースから値が入力されます。

この目的のために、私はjquery、ajax、php、およびmysqlを使用します。

私はいくつかの例をオンラインで見つけようとしていましたが、それらはすべて私にはかなり複雑に見えます(私は初心者だからだと思います)。

私は自分で何かを作ることに決めましたが、私は積み重なってしまいました。論理が正しいかどうかわかりません。

だからここに行きます(ここには関連するコードだけを含めます):

jqueryを使用して、ajaxリクエストを送信します。

    $("#loc").change(function(){
     var val = ($('#loc').val());

        $.ajax({
        type:'POST',
        url:'query.php',
        data: {val:val},
        success:function(response){
            $("#x").html(response);
        } });
    });

「loc」は最初のドロップダウンメニューのIDです。値を取得してquery.phpに送信します

query.phpには、次のコード行があります。

 <?php

include('connect.php'); 
$area = $_POST['val'];
$query ="SELECT DISTINCT activity FROM main ORDER BY 1 where n_city='$area'";
$result = mysqli_query($dbcon, $query) or die('no available data');
$options="";
while ($row=mysqli_fetch_array($result, MYSQLI_ASSOC)){
$activity=$row["activity"];

 }
 ?>

今、私は2つのことを理解しようとしています。1)クエリの結果が入力されたフォームを取得するには、success関数で何を返す必要がありますか?2)次に、最も重要なのは、私の考えが実際に正しいのか、それとも私が見逃している論理的な間違いがあるのか​​ということです。

どうもありがとう。ディミトリス

4

1 に答える 1

1
  1. クリーンな解決策は、2番目のドロップダウンのすべてのオプションを含むJSON配列を返すことです。これは、通常のPHP配列を作成してから、を使用することで簡単に実行できますjson_encode()。結果をループして、JS関数で新しいオプションを作成できます。

  2. それは間違いなくこのように機能します。ただし、利用可能なソリューションの1つを使用する方法を学ぶのに時間をかける価値があるかもしれません。

于 2013-02-25T13:05:06.193 に答える