0

選択すると、互いに依存する 3 つのドロップダウン ボックスが表示されます。たとえば、ドロップダウン 1 からタイプを選択すると、ドロップダウン 2 には、最初のドロップダウン ボックスから選択したものに関連するオプションのみが入力されます。3 番目のドロップ ダウンは、2 番目のドロップ ダウン オプションに依存します。

私が直面している問題は、別のものを選択したいときに、ドロップダウン ボックスのオプションが更新されないことです。

誰でも私を助けることができますか?

これは私のフォームです:

<label>Tour Type </label>
<select id="tourtype" name="tourtype" required>
    <option value="" selected="selected">--Select--</option>
    <?php
        $sql=mysql_query("Select tour_type_id,tour_name from tour_type");
        while($row=mysql_fetch_array($sql))
        {
            $tour_type_id=$row['tour_type_id'];
            $name=$row['tour_name'];
            echo "<option value='$tour_type_id'>$name</option>";
        }
        ?>
</select>
<label>Country</label>
<select id="country" name="country" class="country" required>
    <option value="" selected="selected">-- Select --</option>
</select>
<label>Destination</label>
<select id="destination" name="destination" class="destination" required>
    <option value="" selected="selected">-- Select --</option>
</select>

これは、フォームの下部にある js です。

<script>
    $('#tourtype').change(function () {
        var id = $(this).val();
        $.ajax({
                type: "POST",
                url: "ajax.php",
                data: {
                    id: id,
                    get_countries: 1
                },
                success: function (html) {

                    $("#country").empty();
                    $("#country").append(html);
                },
                error: function () {
                    alert("ajax failed");
                }

            });
    });

    $('#country').change(function () {
        var id = $(this).val();
        $.ajax({
                type: "POST",
                url: "ajax.php",
                data: {
                    id: id,
                    get_destination: 1
                },
                success: function (html) {
                    $("#destination").empty();
                    $("#destination").append(html);
                },
                error: function () {
                    alert("ajax failed");
                }
            });
    });
</script>

最後に、これはajax.phpです

<?php
include('../config.php');

if ($_REQUEST['get_countries']) {
    $sql = mysql_query("SELECT * FROM `countries` WHERE `tour_type_id`=" . $_REQUEST['id']);

    $countries = "";
    while ($row = mysql_fetch_array($sql)) {
        $cid = $row['countries_id'];

        $name = $row['countries_name'];

        $countries .= "<option value='" . $cid . "'>" . $name . "</option>";
    }
    echo $countries;
} elseif ($_REQUEST['get_destination']) {
    $destination = "";
    $sql         = mysql_query("SELECT * FROM `destination`  where `country_id` =" . $_REQUEST['id']);

    while ($row = mysql_fetch_array($sql)) {
        $destination_id = $row['destination_id'];
        $name           = $row['destination_name'];

        $destination .= "<option value='" . $destination_id . "'>" . $name . "</option>";
    }
    echo $destination;
}
?>
4

1 に答える 1

0

問題を修正しました。私のクエリがデータをフェッチしている3つの別々のテーブルにさらにデータを追加する必要がありました

于 2013-06-06T10:35:50.673 に答える