Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2010, 11:40
Аспирант
Отправить личное сообщение для libinstyle Посмотреть профиль Найти все сообщения от libinstyle
 
Регистрация: 23.03.2010
Сообщений: 54

методом POST посылаю просто перменную а не форму
Здравствуйте, у меня следующая задача, надо послать на обработчик parser.php весь innerHTML который есть в <div id="forxml">
для этого написан javascript, но почему то обработчик принимает пустой массив. Пишу print_r($_POST) -- возвращает Array().

Подскажите пожалуйста что я не так сделал.
function createXMLHttp() {
        if(typeof XMLHttpRequest != "undefined") { // для браузеров аля Mozilla

          return new XMLHttpRequest();
        } else if(window.ActiveXObject) { // для Internet Explorer (all versions)
          var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",
                   "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp",
                   "Microsoft.XMLHttp"
                   ];
          for (var i = 0; i < aVersions.length; i++) {
            try { //
              var oXmlHttp = new ActiveXObject(aVersions[i]);

              return oXmlHttp;
            } catch (oError) { 

            }
          }
          throw new Error("Невозможно создать объект XMLHttp.");
        }
      }
      
     
    
      
          
      function sendRequest() {
       
        var myhtml = document.getElementById('forxml').innerHTML;
        var oXmlHttp = createXMLHttp();
        
        oXmlHttp.open("POST",'parser.php', true);
        oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        
        oXmlHttp.onreadystatechange = function() {
          if(oXmlHttp.readyState == 4) {
            if(oXmlHttp.status == 200) {
              saveResult(oXmlHttp.responseText);
            } else {
              saveResult("Ошибка: " + oXmlHttp.statusText);
            }
          }
        };
       
        oXmlHttp.send(myhtml);
      }
      
      function saveResult(sText) {
        var answer = document.getElementById('answer');
        answer.innerHTML = sText;
      }
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2010, 12:04
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от libinstyle
x-www-form-urlencoded
имеет вид var1=value1&var2=value2&..., а у вас просто value.
Ответить с цитированием
  #3 (permalink)  
Старый 28.06.2010, 12:15
Аспирант
Отправить личное сообщение для libinstyle Посмотреть профиль Найти все сообщения от libinstyle
 
Регистрация: 23.03.2010
Сообщений: 54

поменял на text/xml -- результат то же
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2010, 12:22
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Надо не content-type менять, формат тела запроса, чтобы PHP его понял.
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2010, 12:26
Аспирант
Отправить личное сообщение для libinstyle Посмотреть профиль Найти все сообщения от libinstyle
 
Регистрация: 23.03.2010
Сообщений: 54

Как это сделать? Поскажите пожалуйста, я себе плохо представляю
Нужен метод для передачи большого куска текста включающего HTML теги и атрибуты типа <font color="#fff">
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2010, 12:28
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Я же написал уже
Сообщение от Kolyaj
имеет вид var1=value1&var2=value2&..., а у вас просто value.
Проблема здесь
Сообщение от libinstyle
oXmlHttp.send(myhtml);
Не забудьте про encodeURIComponent.
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2010, 12:39
Аспирант
Отправить личное сообщение для libinstyle Посмотреть профиль Найти все сообщения от libinstyle
 
Регистрация: 23.03.2010
Сообщений: 54

знаю я про encodeURIComponent, и уже давно поменял на
oXmlHttp.send(encodeURIComponent(myhtml));

но он все равно получает пустой массив!
Ответить с цитированием
  #8 (permalink)  
Старый 28.06.2010, 12:40
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

libinstyle,
попробуйте перечитать мои сообщения полностью.
Ответить с цитированием
  #9 (permalink)  
Старый 28.06.2010, 12:50
Аспирант
Отправить личное сообщение для libinstyle Посмотреть профиль Найти все сообщения от libinstyle
 
Регистрация: 23.03.2010
Сообщений: 54

АА!! Я сейчас умру! Я написал
oXmlHttp.send("myh="+encodeURIComponent(myhtml));

и он все равно получает пустой массив! О старец Фура, дай мне еще одну подсказку))
Ответить с цитированием
  #10 (permalink)  
Старый 28.06.2010, 12:56
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

libinstyle,
Так правильно, что print_r($_POST) возвращает Array, ведь $_POST и есть массив переменных, переданных методом POST.
проверь одну из переменных $POST[myh] допустим.
__________________
.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение в JavaScript значений переменных, посланных методом POST Ratibor Redoran Общие вопросы Javascript 5 08.06.2010 16:36
JavaScript отправка данных методом POST FORUS Серверные языки и технологии 15 29.05.2010 21:11
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41
Отправка данных методом POST с заменой HTTP_REFERRER pavluxa09 AJAX и COMET 1 16.11.2009 19:30
Вопрос про отправку данных методом Post QQQ AJAX и COMET 1 15.07.2009 23:27