Ответ jquery ajax не отображается в диалоговом окне jqueryui - PullRequest
1 голос
/ 06 июня 2011

Я бы хотел показать детали блога при нажатии на ссылку.

Вот часть кода, который у меня есть.

". Ajax" часть

    $.ajax({
        url: 'someurl',
        dataType: 'json',

        success: function( response ) {
            $( '#viewDialog > h1' ).html( response.title );
            $( '#viewDialog > p' ).html( response.content );

            $( '#viewDialog' ).dialog( 'open' );
        }
    });

". Html" часть

<div id="viewDialog" title="My Blog">
    <h1></h1>
    <p></p>
</div>

Я почти уверен, что получил ответ от сервера в правильном формате json. Что-то вроде этого {"id":"120","title":"My new stuff","content":"Someting new","author_id":"11"}

Когда я щелкнул ссылку, всплыло диалоговое окно, но в нем не было информации.

Я все сделал правильно?

Мило

Ответы [ 2 ]

2 голосов
/ 06 июня 2011

Почти, судя по всему, попробуйте это:

$.ajax({
    url: 'someurl',
    dataType: 'json',
    success: function( response ) {
        $( '#viewDialog > h1').html( response.title );
        $( '#viewDialog > p' ).html( response.content );

        $( '#viewDialog' ).dialog( 'open' );
    }
});

Вы не определили идентификатор blogDetail, который я мог видеть. Похоже, вы пытаетесь поместить HTML в viewDialog.

1 голос
/ 06 июня 2011

У вас нет элемента с идентификатором blogDetail в предоставленном вами HTML.

Изменить после обновления вопроса:

Передача 'open' в вызов диалога будет работать, только если диалог был создан ранее.

Размещение $( '#viewDialog' ).dialog({autoOpen:false}); в верхней части скрипта jQuery должно сделать эту работу.

Или вы можете просто удалить параметр 'open' и просто вызвать $( '#viewDialog' ).dialog();

Демонстрация с использованием {autoOpen: false}

Демо без прохождения 'open'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...