Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesyłanie danych z formularza do skryptu PHP
Forum PHP.pl > Forum > XML, AJAX > AJAX
fookoo
Witam czy jest jakas prostsza metoda niż doklejanie zmiennych do adresu i pobieranie ich przez tablice $_GET ?

Mam skrypt add.php ktory dodaje wpis do bazy SQL, oraz generuje HTML wpisu, który przez AJAX wyswietlam.

teraz sprawa jest prosta i przyjemna kiedy mamy trzy pola w formularzu.

Ale co jesli jest ich więcej? bądz będa to np. inputy typu "file"


Pozdrawiam i licze na jakas sensowna odpowiedz
lord2105
nie musisz pobierac zmiennych z tablicy $_GET, mozesz rownie dobrze przeslac dane poprzez $_POST i uzyc AJAX do dynamicznego zapisu danych

Cytat
Ale co jesli jest ich więcej? bądz będa to np. inputy typu "file"


Nic sie nie stanie jezeli bedzie wiecej pol w formularz, bedziesz mial wtedy wiecej kluczy w tablicy $_POST, jezeli beda to pola typu file i bedzie ich wiecej stosujesz zasade tablicy wielowymiarowej nazywasz pole file w ten sposob:

  1. <input type="file" name="pliki[]">


a odbierasz:

  1. <?php
  2. var_dump($_POST['pliki']);
  3. ?>
fookoo
hmmm nie do konca wiem jak ma to działać:

spojrz:


formularz:
  1. <form action="index.php" method="post">
  2. <input type="text" id="title" name="title" size="20" /><br/>
  3. <textarea id="text" name="text"> </textarea><br/>
  4. <input type="button" name="Dodaj" value="Dodaj" onclick="dodaj()" /><br/>
  5. </form>


JS/AJAX
  1. <script type="text/javascript">
  2. var xmlhttp;
  3.  
  4. function init ()
  5. {
  6. xmlhttp = new XMLHttpRequest();
  7. }
  8.  
  9. function dodaj ()
  10. {
  11.  
  12.  
  13. var title = document.getElementById("title").value;
  14. var tresc = document.getElementById("text").value;
  15.  
  16. xmlhttp.onreadystatechange = function()
  17. {
  18. if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
  19. {
  20. document.getElementById("zbiornik").innerHTML = xmlhttp.responseText + document.getElementById("zbiornik").innerHTML;
  21. }
  22. }
  23. xmlhttp.open ("POST","add.php");
  24. xmlhttp.send ();
  25. }
  26. </script>


plik add.php
  1. <?php
  2. //dodawanie do bazy mysql
  3. ?>
  4.  
  5. <div class="item">
  6. <div id="tytul"><?php echo $_POST["t"]; ?></div>
  7. <div id="tresc"><?php echo $_POST["te"]; ?></div>
  8. </div>
  9.  
  10. <?php
  11.  
  12.  
  13. echo var_dump ($_POST["t"]);
  14.  
  15. ?>



i nie działa to tak jak trzeba... tablica $_POST jest pusta.
krowal
Odchodząc delikatnie od tematu: AJAXEM plików wysłać się nie da !
aart3k
@krowal: za pomocą XMLHttpRequest nie, ale wystarczy użyć iframe'a do wysyłania pliku.
fookoo
a jak zrobic to co proboje zrobic questionmark.gif
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.