Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript][AJAX] Przesyłanie "formularza" od AJAX'a do PHP
Forum PHP.pl > Forum > Przedszkole
thomson89
Witam!

Mam do zbudowania sklep internetowy. AJAX'a prawie nie znam a chcę zbudować panel, na jego podstawie tongue.gif

Ale nie w tym rzecz. Mam prosty formularz, kod. Tak do testów. Obecnie przesyłanie wartości pola typu text odbywa się poprzez metodę, którą można nazwać GET. Ale jeżeli będę miał więcej pól, w tych polach będą za długie wartości? Hasła? Przesyłanie takiego czegoś się nie sprawdzi. A kompletnie nie mam pomysłu, jak takie coś wykonać inną metodą. Metoda POST, ale bez przeładowania strony? Jak przesłać inaczej dane, z formularza bez kliknięcia submit do pliku php, aby ten je odebrał, przetworzył, zwrócił? Pomóżcie!

Plik PHP:
  1. <?php
  2. echo '<h1>'.$_GET['imie'].'</h1>';
  3. ?>


Dokument HTML:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  3. transitional.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  7. <title>AJAX test</title>
  8. </head>
  9. <script language="javascript">
  10. // pierwsza część kodu var ObiektXMLHttp = false;
  11. if (window.XMLHttpRequest)
  12. {
  13. ObiektXMLHttp = new XMLHttpRequest(); }
  14. else if (window.ActiveXObject)
  15. {
  16. ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  17.  
  18. // druga część kodu
  19. function getData(zrodlo) {
  20. if(ObiektXMLHttp)
  21. {
  22. var cel = document.getElementById('div');
  23. ObiektXMLHttp.open("GET", zrodlo);
  24.  
  25. ObiektXMLHttp.onreadystatechange = function()
  26. {
  27. if (ObiektXMLHttp.readyState == 0 || ObiektXMLHttp.readyState == 1 || ObiektXMLHttp.readyState == 2 || ObiektXMLHttp.readyState == 3) {
  28. document.getElementById('div').innerHTML = '<img src="loading11.gif"/>'; }
  29.  
  30. if (ObiektXMLHttp.readyState == 4)
  31. {
  32. document.getElementById('div').innerHTML = "";
  33. cel.innerHTML = ObiektXMLHttp.responseText;
  34. }
  35. }
  36. // trzecia część kodu
  37. ObiektXMLHttp.send(null); } }
  38. <div id="div">
  39. <input type="text" id="imie">
  40. </form>
  41. <button onclick="getData('submit.php?imie=' + document.getElementById('imie').value, 'div');">Pobierz</button>
  42. </div>
  43. </body>
  44. </html>


Pozdrawiam!
skowron-line
Daj sobie spokój z "czystym" Ajax -em teraz jest tyle bibliotek do JS w których jest elegancka obsługa ajaxa (+ obsluga formularzy )że zrobienie tego co chcesz zajmie Ci moment a i będziesz pewien że wszystko działa pod różnymi przeglądarkami.

@DOWN
@bolverk twoja odpowiedz nic nie wniosła do tematu jak już chcesz polecać jakąś bibliotekę to chociaż rzuć linki które przydadzą się autorowi.
bolverk
To co kolega powyżej polecam + jQuery.
thomson89
JQuery!? Świetne narzędzie. Można bardzo ładne stronki w tym robić! Bardzo mi się to podoba. I mimo, że JS tak dobrze nie znam, to z manualem JQuery potrafię coś napisać. Dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.