0

Web アプリケーションのベース フレームワークとして Twitter Bootstrap を使用しています。

次のjavascriptを使用して、JSONを使用してPHPスクリプトからクライアントにデータを戻そうとしています:

$(function($) {
    $('form[data-async]').live('submit', function(event) {
        var $form = $(this);
        var $target = $($form.attr('data-target'));

        $.ajax({
            type: $form.attr('method'),
            url: $form.attr('action'),
            data: $form.serialize(),
            dataType: 'json',

            success: function(data, status) {
                $.getJSON(url, function(data) {
                    var response = $.parseJSON(data);
                    $target.html(response.html)
                });
            }
        });

        event.preventDefault();
    });
});

ただし、モデルに書き込まれているのは JSON データであり、私が期待している HTML ではありません。

サーバー側コード:

$ContentBits['content'] = $this->content;

    $html = ContentFactory::capture_output(ROOT . DS . 'library' . DS . 'cbd' . DS . 'templates' . DS . 'ajaxAlert.php');

    $jsonArray = array(
        'html' => $html,
        'resultCode' => 1
    );
    $json = json_encode($jsonArray);
    header('Content-Type: application/json');
    echo $json;
4

1 に答える 1

2

メソッドは既にサーバーからの結果を JSON として解析しているため、再度$.getJSON呼び出す必要はありません。$.parseJSONコールバックに渡されるdataパラメーターは、直接使用できる JSON オブジェクトを既に表しています。

$.getJSON(url, function(data) {
    $target.html(data.html);
});
于 2012-12-23T19:02:35.350 に答える