1

リストボックスから値を取得し、それを別のリストボックスに渡しています。1 つの値 $Lid ですべてが機能していましたが、今は 2 つの $Lid と $Cid が必要です。これは正しい方法ですか?

    $(document).ready(function()
{

 $(".Doggie").change(function()
{
var LocationString = $(this).find(":selected").val();
    var CityString = $(this).find(":selected").val();
    $.ajax({
        type: "POST",
        url: "ajax_city.php",
        data: {Lid : LocationString, Cid : CityString},
        cache: false,
        success: function (html) {
            $(".Kitty").html(html);
        }
    });
});

$('.Kitty').live("change",function(){
    var LocationString = $(this).find(":selected").val();
    var CityString = $(this).find(":selected").val();
    $.ajax({
        type: "POST",
        url: "ajax_area.php",
        data: {Lid : LocationString, Cid : CityString},
        cache: false,
        success: function (html) {                                     
$(".Pig").html(html);
} 
});

});
});
</script>
</head>
<body>
        <div id="frame1">
        <label>Place :</label>
        <select name="Doggie" class="Doggie" id="Doggie">
        <option selected="selected">--Select Place--</option>
        <?php
                $sql = mysql_query("SELECT tblLocations.RestID as Lid, tblLocations.CityID as Cid, tblRestaurants.RestName as name
            FROM tblRestaurants INNER JOIN tblLocations ON tblRestaurants.RestID = tblLocations.RestID
             GROUP BY tblLocations.RestID, tblRestaurants.RestName
            ORDER BY tblRestaurants.RestName ASC");
        while($row=mysql_fetch_array($sql))
        {
        echo '<option value="'.$row['Lid'].''.$row['Cid'].'">'.$row['name'].'</option>';
        } ?>
         </select>
        <label>City :</label>
         <select name="Kitty" class="Kitty" id="Kitty">
         <option selected="selected">--Select City--</option>
        </select>
        <label>Area: :</label>
         <select name="Pig" class="Pig" id="Pig">
        <option selected="selected">--Select Area--</option>
        </select>
        </div>

</body>
</html>

と...

<?php
require ('config.php');

if ($_POST['Lid']) {
    $Lid = $_POST['Lid'];
    $sql = mysql_query("SELECT tblLocations.RestId as Lid, tblLocations.CityID as Cid,     tblCities.CityName as name
                FROM tblLocations INNER JOIN tblCities ON tblLocations.CityID = tblCities.CityID
                WHERE tblLocations.RestID = $Lid
                GROUP BY tblLocations.RestID, tblCities.CityName
                ORDER BY tblCities.CityName ASC");
    echo '<option selected="selected">--Select City--</option>';
    while ($row = mysql_fetch_array($sql)) {
        echo '<option value="' . $row['Lid'] . '' . $row['Cid'] . '">' . $row['name'] . '</option>';
    }
}

?>

現在、何も返されていないため、間違っていると想定する必要があります。ありがとうございました。

4

4 に答える 4

1

以下の変更を行うことをお勧めします。

    var LocationString = $(this).find(":selected").val();
    var CityString = $(this).find(":selected").val();
    $.ajax({
        type: "POST",
        url: "ajax_city.php",
        data: {Lid : LocationString, Cid : CityString},
        cache: false,
        success: function (html) {
            $(".Kitty").html(html);
        }
    });

2つの値を追加しdataていましたが、これは正しい方法ではありません。目的のキーと値を含む単一のリテラルオブジェクトを渡すだけで、JQueryがフォーマットを実行できるようになります。

于 2013-01-18T03:13:47.087 に答える
0

同じ値を 2 つの変数に格納する理由がわかりません。

var LocationString = 'Lid=' + $(this).val();
var CityString = 'Cid=' + $(this).val();

次のように簡略化できます。

var LocationString = $(this).val();

そして、値は1つしかないためdata、次の形式にする必要があります

data: {
    'Lid': LocationString
}
于 2013-01-18T03:12:10.957 に答える
0

データはフォーマットである必要があります

data: {Lid : LocationString, Cid : CityString},

また、クエリの結果を確認してください

で確認してください

print_r(mysql_fetch_array($sql))

クエリに結果がない場合、ループ内でエコーが機能しません

于 2013-01-18T03:24:13.813 に答える