Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Задачка по jQuery - вывести innerHTML элемента


Автор: mark2011 7.9.2011, 15:40
Мда, битый час просидел, прошу помощь зала))

Итак, имеем следующую конструкцию:

Код

function get_page_contents(page_name)
{

    $.post("includes/ajax.php?mode=get_page", {pagename: page_name}, function(data)
    {
        
            $('#hed1').html(data.h1);
            $('#content').html(data.content);
    }, "json");
}


Соответственно содержимое ajax.php в точке входа mode=get_page:

Код

case 'get_page':
        $page = $_POST['pagename'];
        
        $db->query('SELECT page_h1_title, page_content FROM pages WHERE page_file_name = "'.$page.'"');

    
        $r = $db->parse_query('array');
        $h1_title     = $r['page_h1_title'];
        $page_content = $r['page_content'];
        
        $return = json_encode(array("h1" => $h1_title, "content" => $page_content));
        echo $return;
        die();
    break;


Элемент с id=content - DIV.
Элемент с id=hed1 - h1.

Задача: вставить из базы содержимое на страницу. H1 - заголовок, content - содержимое.
Содержимое вставляется прекрасно, вместо H1 - null. Проверено alert'ом.

Ну что я не так делаю, кто-нибудь мне скажет?

Автор: нуп 7.9.2011, 16:53
тупо и просто console.log(data);

Автор: mark2011 7.9.2011, 20:16
нуп
Цитата(нуп @  7.9.2011,  16:53 Найти цитируемый пост)
тупо и просто console.log(data); 

И к чему вот это?
Я же написал:



Цитата(mark2011 @  7.9.2011,  15:40 Найти цитируемый пост)
Содержимое вставляется прекрасно, вместо H1 - null. Проверено alert'ом.

Ключевые слова здесь: Проверено alert'ом.. Какой вам console.log?

Автор: нуп 7.9.2011, 21:23
Код

 $.post("includes/ajax.php?mode=get_page", {pagename: page_name}, function(data)
    {
             console.log(data);
            $('#hed1').html(data.h1);
            $('#content').html(data.content);
    }, "json");

Тут 2 варианта: либо не пришел h1, либо нет такого элемента с id hed1 и console.log всё разъяснит  smile 

Автор: mark2011 8.9.2011, 06:48
Вот что пришло:

Код

[07:46:42.968] ({h1:"\u0421\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432
\u043E \u0434\u043E\u043C\u043E\u0432 \u0440\u0443\u0447\u043D\u044B\u043C\u0438 \u0441
\u043F\u043E\u0441\u043E\u0431\u0430\u043C\u0438 \u0440\u0443\u0431\u043A\u0438 \u0441\u0440
\u0443\u0431\u043E\u0432", content:"<p style=\"text-align: justify\">\n\t&nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; \u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u0441\u043F\u0435\u0446\u0438\u0430
\u043B\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043D\u0430\u0448\u0435\u0439 \u043A\u043E
\u043C\u043F\u0430\u043D\u0438\u0438 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434
\u0435\u0440\u0435\u0432\u044F\u043D\u043D\u043E\u0435 \u0441\u0442\u0440\u043E\u0438\u0442
\u0435\u043B\u044C\u0441\u0442\u0432\u043E \u043A\u043E\u0442\u0442\u0435\u0434\u0436\u0435
\u0439, \u0437\u0430\u0433\u043E\u0440\u043E\u0434\u043D\u044B\u0445 \u0434\u043E\u043C\u043E
\u0432 \u0441 \u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u0435\u043C \u0440\u0430
\u043B\u0438\u0447\u043D\u044B\u0445 \u0442\u0435\u0445\u043D\u043E\u043B\u043E


и т.д.

Автор: mark2011 8.9.2011, 08:28
Итак, мои дальнейшие изыскания... буду писать не функциями а отрывочно



Код

alert($("#hed1").val())

в итоге даёт пустую строку (или null) хотя в строке есть содержимое

Код

alert($("#hed1").html());

в итоге даёт то, что ожидалось

Код

$("#hed1").html(data.h1);
alert($("#hed1").html());

В итоге имеем NULL.

Даже не знаю, что комментировать по этому поводу. На mootools было всё отлично.

Автор: нуп 8.9.2011, 11:19
JQuery ужасный, не пользуйтесь им  smile Попробовал ваш пример, всё приходит и работает. Я 3-й раз пишу поставьте firebug  и сделайте вывод data, может какие то символы есть которые не парсятся, или можете дальше грешить на кривость jquery

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)