1

PHP MVCアプリケーションでは、モデル部分にcity.php都市クラスを定義するファイルがあります。

都市クラスには、州のすべての都市をフェッチするメソッドがあります。

getCitiesByProvince('ProvinceId')

ユーザーが州のドロップダウンから州を選択するとき、州のドロップダウンgetCitiesByProvince('ProvinceId')内でユーザーが選択した州IDの値に応じて、ajax呼び出しを行う必要があります。

どうすればよいですか?

編集:1)ページはPOSTメソッドではなくGETメソッドを使用します。2)コントローラーファイルはswitch($ action)を使用して特定のケースを実行します。たとえば、すべての都市を取得するには

 case 'cities': //Get all cities for  a provinceId
                $city= new city();
                $cities = $City->getCitiesByProvince('ProvinceId');
                echo json_encode($cities);

アクションはおそらく、実行するアクション/ケースをphpスクリプトに指示する非表示のhtml属性です...多分次のようなものです

 <input type="hidden" name="action" value="cities" />

これは、現時点ではあまり馴染みのない別の開発者のコ​​ードであり、さまざまなファイルを調べて、どのように機能するかを推測しようとしています...

4

2 に答える 2

1

getcitiesなどと呼ばれるコントローラーでアクションを実行し、$。ajax、$。get、$。post、または$ .getJSONを使用して結果を取得する必要があるというモデルから、これを直接呼び出すことはできません。 json形式であると仮定して、$。postを使用した例を次に示します。

コントローラーがコントローラー内のcitycntrl.phpである場合は、次のようにします。

//任意の形式で都市の配列を取得するロジック例:'{zip}' =>'{cityname}'、または通常のキーを使用した{cityname}

$_POST['providenceId']を使用します。キーはjQueryで送信されていました

やりたいことは、json_encode($ arrayname);を介して配列を実行することです。そして、providenceId post値に基づいて、それをコントローラーにエコーアウトします。

ドロップダウンシナリオのより良いコード例を次に示します。最初に読み間違え、ドロップダウン部分を見逃しました。

$.post('controller/getcities', {
    provinceId: $('#{dropdownIDorCLASS}:selected').val();
}, function (data) {
    //data will contain your list of cities passed down from your controller.
    //do whatever with returned json data
}, 'json');

私があなたのがらくたを混乱させているだけなら、Skypeで私に連絡してください。うまくいけば、もう少し良い国連を支援します:fallen.networks

于 2012-07-17T19:50:57.123 に答える
1

PHP ファイルで次のことを行います。

<?php
$province = $_GET['p'];

$cities = array();
$city_results = ... // fetch cities from database

foreach($city_results as $city_result) {
    $cities[] = $city_result->city;
}

echo json_encode($cities);
?>

Javascript に次のことをさせます。

$.ajax({
    type: "GET",
    url: "php_url_path",
    data: { p: get_province_here() },
    success: function (cities) {
        for (var i = 0; i < cities.length; i++) {
            ... // handle options here
        }
    }
});

これにより、求めるファイル間接続が作成されます。楽しんで頑張ってください!

于 2012-07-17T19:52:11.820 に答える