Jak wys

Potrzebujesz pomocy z C, C++, perl, python, itp.
Shakez
Beginner
Posty: 179
Rejestracja: 18 stycznia 2009, 14:36
Lokalizacja: Wronki

Jak wysłać formularz w AJAX-ie?

Post autor: Shakez »

Mam takie pytanko do szanownych koleżanek i kolegów.
Zapoznaję się z AJAX-em i nie mogę nigdzie znaleźć informacji na temat wysyłania formularza metodą post.
Chodzi mi o sam AJAX bez żadnych ..frameworków''.
gothye
Posty: 91
Rejestracja: 12 maja 2007, 15:26
Lokalizacja: P³ock

Post autor: gothye »

Poszukaj jquery w Google, fajna wtyczka do tego czego szukasz.
chyl-o
Junior Member
Posty: 621
Rejestracja: 24 maja 2006, 21:06
Lokalizacja: Lublin

Post autor: chyl-o »

gothye pisze:Poszukaj jquery w Google, fajna wtyczka do tego czego szukasz.
Koledze chyba nie o to chodziło, prosił bez takich pomocy.

Metoda open obiektu XMLHttpRequest jako pierwszy parametr przyjmuje metodę przesyłania i tam możesz wstawić "POST" XMLHttpRequest

pozdr.
Paweł
Shakez
Beginner
Posty: 179
Rejestracja: 18 stycznia 2009, 14:36
Lokalizacja: Wronki

Post autor: Shakez »

Wiem już jak przesłać zawartość pola formularza metodą post ale nie wiem jak przesłać cały formularz tą metodą.

Jest to możliwe?
chyl-o
Junior Member
Posty: 621
Rejestracja: 24 maja 2006, 21:06
Lokalizacja: Lublin

Post autor: chyl-o »

Shakez pisze:Wiem już jak przesłać zawartość pola formularza metodą post ale nie wiem jak przesłać cały formularz tą metodą.

Jest to możliwe?
Tak.
Shakez
Beginner
Posty: 179
Rejestracja: 18 stycznia 2009, 14:36
Lokalizacja: Wronki

Post autor: Shakez »

Więc jak to zrobić?

[ Dodano: 2009-10-31, 09:49 ]
Znalazłem już rozwiązanie więc podzielę sie fragmentami kodów które mi pomogły:

Kod: Zaznacz cały

   1.
      post.html:
   2.
       
   3.
      <script type="text/javascript" language="javascript">
   4.
      var http_request = false;
   5.
      function makePOSTRequest(url, parameters) {
   6.
      http_request = false;
   7.
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
   8.
      http_request = new XMLHttpRequest();
   9.
      if (http_request.overrideMimeType) {
  10.
      // set type accordingly to anticipated content type
  11.
      //http_request.overrideMimeType('text/xml');
  12.
      http_request.overrideMimeType('text/html');
  13.
      }
  14.
      } else if (window.ActiveXObject) { // IE
  15.
      try {
  16.
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
  17.
      } catch (e) {
  18.
      try {
  19.
      http_request = new ActiveXObject("Microsoft.XMLHTTP");
  20.
      } catch (e) {}
  21.
      }
  22.
      }
  23.
      if (!http_request) {
  24.
      alert('Cannot create XMLHTTP instance');
  25.
      return false;
  26.
      }
  27.
       
  28.
      http_request.onreadystatechange = alertContents;
  29.
      http_request.open('POST', url, true);
  30.
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  31.
      http_request.setRequestHeader("Content-length", parameters.length);
  32.
      http_request.setRequestHeader("Connection", "close");
  33.
      http_request.send(parameters);
  34.
      }
  35.
       
  36.
      function alertContents() {
  37.
      if (http_request.readyState == 4) {
  38.
      if (http_request.status == 200) {
  39.
      //alert(http_request.responseText);
  40.
      result = http_request.responseText;
  41.
      document.getElementById('myspan').innerHTML = result;
  42.
      } else {
  43.
      alert('There was a problem with the request.');
  44.
      }
  45.
      }
  46.
      }
  47.
       
  48.
      function get(obj) {
  49.
      var poststr = "mytextarea1=" + encodeURI( document.getElementById("mytextarea1").value ) +
  50.
      "&mytextarea2=" + encodeURI( document.getElementById("mytextarea2").value );
  51.
      makePOSTRequest('post.php', poststr);
  52.
      }
  53.
      </script>
  54.
       
  55.
       
  56.
      <form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform">
  57.
      <textarea id="mytextarea1">my test
  58.
      1
  59.
      2
  60.
      3

Kod: Zaznacz cały

<script type="text/javascript">

function checkempty(theform){
var returnval=true //by default, allow form submission
for (i=0; i<theform.elements.length; i++){
if (theform.elements[i].type=="text" || theform.elements[i].type=="textarea"){
if (theform.elements[i].value==""){ //if empty field
alert("Please make sure all fields are entered") //alert error message
returnval=false //disallow form submission
break //end loop. No need to continue.
}
}
}
return returnval
}

</script>

<form onSubmit="return checkempty(this)">
Name: <input type="text" name="yourname" />

Email: <input type="text" name="email" />

Comments: <textarea name="comments"></textarea>

<input type="submit" value="submit" />
</form>
Tyle wystarczy tym którzy znają podstawy
ODPOWIEDZ