2

Ajax呼び出しで文字列を取得するのが好きですが、応答でhtmlページ全体を取得し続けます。

文字列を取得する方法は何ですか?

$.ajax({
                    url: '{$domainpath}{$language}/reservations/updatestartdates',
                    data: {property:property,stayduration:stayduration},
                    type: 'POST',
                    dataType: 'json'
                }).done(function(response){
                    alert(response);
                });

private function updateAvailableStartDates(){
    if(isset($_POST['property']) && !empty($_POST['property']) && isset($_POST['stayduration']) && !empty($_POST['stayduration'])){
        $property = $_POST['property'];
        $stayduration = $_POST['stayduration'];
    }
    //handle code

    echo json_encode('only this string');
}
4

3 に答える 3

2

からすべての出力を取得しますurl: '{$domainpath}{$language}/reservations/updatestartdates'

したがって、文字列が必要な場合echoは、サーバーページの文字列のみ(すべてのHTML出力を削除)

また、に変更echo json_encode('only this string');しますecho json_encode(array('only this string'));

于 2013-02-26T08:38:46.980 に答える
1

通常、コンテンツ(おそらく\ n)が応答を壊さないように、JSONを出力した直後に終了することをお勧めします。

echo json_encode('only this string');
exit();
于 2013-02-26T08:48:32.093 に答える
0

あなたの関数はレイアウト有効モードで応答を送信するので、文字列はラップされたレイアウトで提供されると思います。関数を呼び出すためにコントローラーのレイアウトを無効にする必要があるかもしれません (url: '{$domainpath{$language}/reservations/updatestartdates')

于 2013-02-26T08:41:57.847 に答える