Передача строки xmlHttp - PullRequest
       1

Передача строки xmlHttp

0 голосов
/ 21 декабря 2009

текущая функция xmlhttp, которую я использую, передает крошечный int в файл php для обработки методом GET.

xmlhttp=GetXmlHttpObject();
        if (xmlhttp==null)
        {
            alert ("Browser does not support HTTP Request");
            return;
        }
        var url="user_submit.php";
        url=url+"?vote="+value;
        url=url+"&sid="+Math.random();
        xmlhttp.onreadystatechange=stateChanged;
        xmlhttp.open("GET",url,true);
        xmlhttp.send(null);
        function stateChanged()
        {
          if (xmlhttp.readyState==4)
          {
          document.getElementById("captionbox").innerHTML=xmlhttp.responseText;
          }
        }

Теперь я хочу обработать поле comment в этом запросе ajax, которое, я полагаю, потребует вызова POST? кто-нибудь может мне помочь с этим?

Мне нужно отправить содержимое поля комментария через этот ajax-запрос в файл php для обработки, а затем добавить в БД.

Ответы [ 2 ]

2 голосов
/ 21 декабря 2009
...
var url="user_submit.php",
    data="vote="+value+"&sid="+Math.random();
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
xmlHttp.setRequestHeader("Content-length", data.length);
xmlhttp.open("POST",url,true);
...
xmlHttp.send( data );
...
1 голос
/ 21 декабря 2009

Вы используете send() для отправки данных POST таким способом. Затем вам нужно отправить правильные заголовки и правильно закодировать эти данные и т. Д.

Как говорится, невероятно утомительно использовать XmlHttpRequest. Существуют кросс-браузерные проблемы (например, запасные варианты, когда XmlHttpRequest не существует), и, как вы можете видеть, сам код грязный.

Подумайте об использовании библиотеки Javascript, такой как jQuery , и тогда она уменьшит ваш код до:

$("#captionbox").load('user_submit.php', {
  vote: value,
  sid: 12345
});

, который также будет корректно выполнять кодирование параметров строки запроса (и многих других) прямо из коробки.

Чтобы оставить комментарий, представьте, что у вас есть:

<textarea id="comment"></textarea>
<input type="button" id="send" value="Send">

, то:

$.post("post_comment.php", {
  comment: $("#comment").text()
});

А jQuery только 19K минимизирован и сжан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...