Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

jquery ajax innerHTML

9.1K
06 декабря 2010 года
motorw
134 / / 15.12.2009
Проблема в следующем:
имеется функция, в которой необходимо ajax'ом через пост отправить данные с дива(полностью все). Передаю это обычным способом через innerHTML(var text=document.getElementById(obj).innerHTML):
 
Код:
$.ajax({url: \"conversion.php\", data: \"msg=\"+text, type: \"POST\", async: false});

Но, дело в том, что данные передаются неверно! Вот, например, текст этого div'а(переменная text):
 
Код:
<div class="codetitle">*<b>Code:</b></div><div class="code"><a href="http://ya.ru">TEXT1</a><br>
<strong>TEXT2</strong><br>
<strike>TEXT3</strike><br>
<i>TEXT4</i><br>
<div class="codetitle">*<b>Code:</b></div><div class="code">TEXT5</div></div>

В чем может быть причина?
Ставлю до этой строчки алерты - вывод нормальный - после - ничего нет(страница conversion.php ничего не возвращает). Самое главное - даже на страницу ничего не приходит(в $_REQUEST["msg"] и $_POST["msg"] ничего нет)! То есть есть, проверка на isset проходит, но в самом значении пусто, т.е. strlen($_POST["msg"])=0;
Какая-то магия. Подскажите, неужели я такой глупый и бьюсь с этим целый день зря?

P.S. \" - это вывод с php.
244
06 декабря 2010 года
UAS
2.0K / / 19.07.2006
Так, давайте сразу весь код, с помощью которого получается text и отправляется, а не какие-то огрызки.
Просто все описано у вас как-то сумбурно и "не по полочкам". Лучше такие примеры сразу приводить кодом, чем линейным текстом пояснять
9.1K
06 декабря 2010 года
motorw
134 / / 15.12.2009
Цитата: UAS
А нам откуда знать, что Вы понимаете под "неверно"?


Ну хорошо. Исходный div я дал, вот что передается:

 
Код:
<div class="codetitle"></div>
244
06 декабря 2010 года
UAS
2.0K / / 19.07.2006
Я там вопрос подправил - я что-то протупил при чтении темы, так что задал более корректный вопрос.
9.1K
06 декабря 2010 года
motorw
134 / / 15.12.2009
Код:
function editpost(objnumber, show, callerid)
        {
            if(show==1)
            {
                if(lastcallerid==callerid){}  //already selected
                else if(lastcallerid==-1) //first time
                {
                    var obj=document.getElementById(objnumber);
                    $.ajax({url: \"conversion.php\", data: \"msg=\"+obj.innerHTML, type: \"POST\", async: false, success:
                    function(data)
                    {
                        obj.innerHTML=data;
                    }
                    });
                    obj.innerHTML=\"<textarea id='edit\"+objnumber+\"'>\"+obj.innerHTML+\"</textarea><input type='button' value='Finish' &#111;&#110;click=editpost('edit\"+objnumber+\"',0) />\";
                    lastcallerid=callerid;
                    lastobj=objnumber;
                    lastedit='edit'+objnumber;
                }
                else   //not first time
                {
                    //close previous
                        document.getElementById(lastobj).innerHTML=document.getElementById(lastedit).value;
                    //end

                    var obj=document.getElementById(objnumber);
                    obj.innerHTML=\"<textarea id='edit\"+objnumber+\"'>\"+obj.innerHTML+\"</textarea><input type='button' value='Finish' &#111;&#110;click=editpost('edit\"+objnumber+\"',0) />\";
                    lastcallerid=callerid;
                    lastobj=objnumber;
                    lastedit='edit'+objnumber;
                }
            }
            else
            {
                var objedit=document.getElementById(objnumber);
                var obj=document.getElementById(objnumber.substring(4));
                obj.innerHTML=objedit.value;
                lastcallerid=-1;    //back to first time
                sendeditedpost(objnumber.substring(4));
            }
        }
244
06 декабря 2010 года
UAS
2.0K / / 19.07.2006
Ну что сказать - ходите Firebug'ом по строчкам и смотрите, тот ли контент отдается в ajax и отдается ли он вообще (в консоли файрбага отображаются все ajax-запросы).Также попробуйте передать инфу как data: {msg: $(obj).html(); } например

Но в первую очередь - файрбаг
9.1K
06 декабря 2010 года
motorw
134 / / 15.12.2009
Да делал я все это.
В ajax-запросе(через фаербаг) видно, что одается именно одна строчка, которая неверная(приводил выше).
И комментил, и не комментил. И методом jquery html() пробовал - все одинаково.

А вот через список аргументов не пробовал. Вроде работает. Большое спасибо! Все-таки надо больше курить доки.
Так, а что Вы скажете насчет проблемы с iframe?
5
06 декабря 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: motorw

А вот через список аргументов не пробовал. Вроде работает. Большое спасибо! Все-таки надо больше курить доки.
Так, а что Вы скажете насчет проблемы с iframe?


Нафига пользоваться getElementById и innerHTML если под боком есть JQuery?
Опять же, зачем врукопашную скливать HTML из строк, если есть JQuery Templates?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог