Дос Опубликовано 8 августа, 2009 Жалоба Share Опубликовано 8 августа, 2009 Здравствуйте коллеги, столкнулся с такой проблемой. Мне необходимо передать постом(POST) текст из fckeditor через java script. Значит так: php форма: <form id="AddInfo" action="java script:AddHelpInfo();" method="post"> <input type="hidden" value="<?=$menu_id?>" id="menu_id"> <input type="hidden" value="<?=$type?>" id="type"> <input type="hidden" value="<?=$menu?>" id="menu"> ............................ ............................ <input type="submit" value="Сохранить"> </form> js функция AddHelpInfo передачи текста: function AddHelpInfo() { var menu_id = document.getElementById("menu_id").value; var type = document.getElementById("type").value; var menu = document.getElementById("menu").value; var text = document.getElementById("FCKeditor1").value; var parametrs = "menu_id=" + menu_id + "&type=" + type + "&menu=" + menu + "&text=" + text; loadHTTPDocPOST('init.InputHelpInfo.php', parametrs); } js функция loadHTTPDocPOST использующая XMLHttpRequest function loadHTTPDocPOST(file, params) { xmlHttp = null; // Блок 1. Для FireFox if (window.XMLHttpRequest) { xmlHttp=new XMLHttpRequest(); if (xmlHttp!=null) { xmlHttp.open("POST", "httpr/" + file, true); xmlHttp.setRequestHeader('Content-Type', 'text/html; charset=windows-1251'); xmlHttp.send(params); xmlHttp.onreadystatechange=state_Change; } else { alert("Ваш обозреватель не поддерживает ajax."); } } // Блок 2. Для IE else if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); if (xmlHttp!=null) { xmlHttp.open("POST", "httpr/" + file, true); xmlHttp.setRequestHeader('Content-Type', 'text/html; charset=windows-1251'); xmlHttp.send(params); xmlHttp.onreadystatechange=state_Change; } else { alert("Ваш обозреватель не поддерживает ajax."); } } } Принимаю эти параметры в файле init.InputHelpInfo.php так: @$menu_id = $_REQUEST['menu_id']; @$type = $_REQUEST['type']; @$menu = $_REQUEST['menu']; @$value = $_REQUEST['text']; Так вот не могу принять в файле Init.InputHelpInfo.php эти параметры("menu_id=" + menu_id + "&type=" + type + "&menu=" + menu + "&text=080"). В функцию AddHelpInfo() эти параметры принимаются нормально. Так в чем же загвоздка? Может что-то пропустил? Есть подозрения что большой текст в переменной text нельзя принять таким способом, или же ошибка в функции loadHTTPDocPOST? Подскажите если кто сталкивался. Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 8 августа, 2009 Жалоба Share Опубликовано 8 августа, 2009 такой вопрос - ты вроде говорил что это локально работает xmlHttp.open("POST", "httpr/" + file, true); ты уверен что файл доступен по этому адресу: "httpr/" + file выведи адрес полный и в адресной строке его введи (в целевой файл какой нибудь вывод) Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 8 августа, 2009 Автор Жалоба Share Опубликовано 8 августа, 2009 такой вопрос - ты вроде говорил что это локально работает xmlHttp.open("POST", "httpr/" + file, true); ты уверен что файл доступен по этому адресу: "httpr/" + file выведи адрес полный и в адресной строке его введи (в целевой файл какой нибудь вывод) "httpr/" + file с Get работает вот аналогичная функция с GET: function loadHTTPDoc(url, blockIdReturn, id) { blockIdRet = blockIdReturn; xmlhttp = null; // Блок 1. Для FireFox if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); if (xmlhttp!=null) { xmlhttp.onreadystatechange=state_Change; var post_url = url.split("?"); if (post_url[1]) { xmlhttp.open("GET",'httpr/' + url, false); } else { xmlhttp.open("GET",'httpr/' + url + '?id=' + id, false); } xmlhttp.send(null); document.getElementById(blockIdRet).innerHTML=xmlhttp.responseText; } else { alert("Ваш обозреватель не поддерживает ajax."); } } // Блок 2. Для IE else if (window.ActiveXObject) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); if (xmlhttp!=null) { xmlhttp.onreadystatechange=state_Change; var post_url = url.split("?"); if (post_url[1]) { xmlhttp.open("GET",'httpr/' + url, false); } else { xmlhttp.open("GET",'httpr/' + url + '?id=' + id, false); } xmlhttp.send(null); } else { alert("Ваш обозреватель не поддерживает ajax."); } } } Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 8 августа, 2009 Автор Жалоба Share Опубликовано 8 августа, 2009 Так эту проблему решил) с помощью jquery: function AddHelpInfo() { $.ajax( { type: "POST", url: "httpr/init.InputHelpInfo.php", data: { menu: document.getElementById("menu").value, menu_id: document.getElementById("menu_id").value, type: document.getElementById("type").value, text: document.getElementById("FCKeditor1").value } } ); } Теперь text вводиться нормально, только с кодировкой косяк. Кто знает как исправить? Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 8 августа, 2009 Жалоба Share Опубликовано 8 августа, 2009 Так эту проблему решил) с помощью jquery: function AddHelpInfo() { $.ajax( { type: "POST", url: "httpr/init.InputHelpInfo.php", data: { menu: $("#menu").val(), menu_id: $("#menu_id").val(), type: $("#type").val(), text: $("#FCKeditor1").val() } } ); } Теперь text вводиться нормально, только с кодировкой косяк. Кто знает как исправить? чуть короче кодировка - в InputHelpInfo.php сделай $_POST['text']=iconv('utf8','cp1251',$_POST['text']); Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 8 августа, 2009 Автор Жалоба Share Опубликовано 8 августа, 2009 чуть короче кодировка - в InputHelpInfo.php сделай $_POST['text']=iconv('utf8','cp1251',$_POST['text']); фууууу все спасибо большое, только там вместо 'utf8' = 'UTF-8' , а вместо 'cp1251' = 'windows-1251'. Все работает как часы Вот: @$value = iconv('UTF-8', 'windows-1251',$_POST['text']); Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 8 августа, 2009 Жалоба Share Опубликовано 8 августа, 2009 аха с ютфом ошибся но так работает тоже iconv('utf-8', 'cp1251',$v); Ссылка на комментарий Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Заархивировано
Эта тема находится в архиве и закрыта для дальнейших ответов.