Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2015, 15:51
Новичок на форуме
Отправить личное сообщение для Alex22 Посмотреть профиль Найти все сообщения от Alex22
 
Регистрация: 29.10.2008
Сообщений: 7

Отправка большого содержимого textarea ajax-ом
Добрый день уважаемые камрады!

Ситуация такая:
Написал скрипт, обработки таблицы на лету (как в phpmyadmin). Все казалось бы великолепно работает, за исключением непонятного ограничения отправляемого текста POST запросом. Почему то функция не пропускает длинное содержимое textarea. Если текст, приблезительно до 500 символов, срабатывает как положено.

вот часть скрипта
//-----------ajax----------
function loadTemp1(url,div1,img) {
if (inputs==0) {return false}// контроль

if (img) {
picsLoad=new Image();
picsLoad.src="/image/" + img + ".gif";
var con = document.getElementById(div1);
con.appendChild(picsLoad);}//анимированный gif

if (window.XMLHttpRequest) {reqTemp1 = new XMLHttpRequest();}
else if (window.ActiveXObject) {reqTemp1 = new ActiveXObject("Microsoft.XMLHTTP");}
    reqTemp1.onreadystatechange = processreqTemp1; 
    reqTemp1.open("post", url, div1, true);
    reqTemp1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    reqTemp1.send(null); 

function processreqTemp1() { 
   if(reqTemp1.readyState == 4) { 
    if(reqTemp1.status == 200) {getTemp1(reqTemp1.responseText);}
    } 
}
function getTemp1( number ) { 
  var contentsTemp1 = document.getElementById(div1); 
  contentsTemp1.innerHTML = number;}
}

//------------Клик на поле таблицы------------------
function edit_text(id,handler) {

if (window.edit_txt==1) {return false} 
else {window.text_begin=document.getElementById(id).innerHTML;
document.getElementById(id).innerHTML = '<textarea id="edittext">' + window.text_begin + '</textarea>';
document.getElementById("edittext").style.width=document.getElementById(id).style.width;
window.edit_txt=1;off_input();}

document.onclick = function(event) {
t=event.target||event.srcElement; 
if ((t.id==id)||(t.id=='edittext')) {return false} //блокирует повторный клик
else {
var r = new RegExp("\x27+","g");
window.text_end=encodeURIComponent(document.getElementById("edittext").value.replace(r,"&rsquo;")); // преобразовывает одинарные кавычки в символ

document.getElementById(id).innerHTML = "";
window.edit_txt=0;
window.url='/handlers/' + handler + "&cell_value=" + window.text_end;
div1=id; img="loader2";
on_input();loadTemp1(url,div1,img);
}}

document.onkeydown = function checkKeycode(event){
if(!event) var event = window.event;
if (event.keyCode==27 || event.which==27) {document.getElementById(id).innerHTML = text_begin; window.edit_txt=0;on_input();}// если нажали escape, то возвращает исходный текст в поле таблицы
}
}

Часть кода вывода таблицы (клик на поле)
<td id="row'.$id.'" onclick=edit_text("row'.$id.'","editor.php?id='.$id.'&cell=row");>'.$row.'</td>


Подскажите пожалуйста, в чем загвоздка? Всю голову себе сломал.

Последний раз редактировалось Alex22, 01.02.2015 в 15:57.
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2015, 16:07
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Alex22,
У метода "POST" помимо параметров запроса есть "тело", кладите данные туда.
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2015, 16:12
Новичок на форуме
Отправить личное сообщение для Alex22 Посмотреть профиль Найти все сообщения от Alex22
 
Регистрация: 29.10.2008
Сообщений: 7

Каким образом? Укажите пальцем, если не трудно. Я уже не один день бьюсь.....
Ответить с цитированием
  #4 (permalink)  
Старый 01.02.2015, 16:21
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Alex22, также не стоит забывать, что у POST есть ограничение на вес.

http://php.net/manual/ru/ini.core.php#ini.post-max-size
Ответить с цитированием
  #5 (permalink)  
Старый 01.02.2015, 16:23
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Alex22,
http://stackoverflow.com/questions/9...xmlhttprequest

В "send" пихайте не "null" а данные
Ответить с цитированием
  #6 (permalink)  
Старый 01.02.2015, 16:55
Новичок на форуме
Отправить личное сообщение для Alex22 Посмотреть профиль Найти все сообщения от Alex22
 
Регистрация: 29.10.2008
Сообщений: 7

Сообщение от tsigel Посмотреть сообщение
Alex22,
http://stackoverflow.com/questions/9...xmlhttprequest

В "send" пихайте не "null" а данные
Вот в чем косяк-то))) Спасибо! Заработало!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax и отправка файлов с формы miker059 jQuery 5 10.01.2018 03:12
Ajax отправка формы без перезагрузки страници Slava-web AJAX и COMET 10 27.02.2014 18:14
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
Отправка запроса ajax Jack Sparrow AJAX и COMET 1 24.11.2012 13:29
Textarea после ajax не могу обратится mikeles Общие вопросы Javascript 0 12.01.2011 23:02