jquery ajax innerHTML
имеется функция, в которой необходимо 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>
<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.
Просто все описано у вас как-то сумбурно и "не по полочкам". Лучше такие примеры сразу приводить кодом, чем линейным текстом пояснять
Цитата: UAS
А нам откуда знать, что Вы понимаете под "неверно"?
Ну хорошо. Исходный div я дал, вот что передается:
Код:
<div class="codetitle"></div>
Я там вопрос подправил - я что-то протупил при чтении темы, так что задал более корректный вопрос.
Код:
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' onclick=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' onclick=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));
}
}
{
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' onclick=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' onclick=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));
}
}
Но в первую очередь - файрбаг
В ajax-запросе(через фаербаг) видно, что одается именно одна строчка, которая неверная(приводил выше).
И комментил, и не комментил. И методом jquery html() пробовал - все одинаково.
А вот через список аргументов не пробовал. Вроде работает. Большое спасибо! Все-таки надо больше курить доки.
Так, а что Вы скажете насчет проблемы с iframe?
Цитата: motorw
А вот через список аргументов не пробовал. Вроде работает. Большое спасибо! Все-таки надо больше курить доки.
Так, а что Вы скажете насчет проблемы с iframe?
Нафига пользоваться getElementById и innerHTML если под боком есть JQuery?
Опять же, зачем врукопашную скливать HTML из строк, если есть JQuery Templates?