Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][HTML][PHP]Dynamiczny formularz (dane w polach select i input pobierane z bazy danych)
Forum PHP.pl > Forum > Przedszkole
jeden5a
Witam,

Potrzebuje utworzyc prosty dynamiczny formularz, zawierajacy elementy select i input. Skladniki pola select pobierane sa z bazy danych. Po wyborze jednej z opcji (option), w polach input powinny wyswietlic sie odpowiednie dane (rowniez pobrane z bazy danych, ktora opiera sie na jednej tabeli).

Krotko na przykladzie: uzytkownik, ktory wybierze z rozwijanej listy "login", otrzyma w polach input "imie" i "e-mail" danego uzytkownika z tej samej tabeli.

Udalo mi sie utworzyc skrypt, ktory pobiera w ten sposob dane, ale glownym problemem jest fakt, ze dane pobierane sa z bazy danych dopiero po przeladowaniu calego formularza. Potrzebuje jednak funkcji, ktora po wyborze opcji z listy, od razu wyswietli odpowiednie dane w polach input (bez przeladowywania formularza).

Ponizej podaje kod zrodlowy. Jezeli udaloby sie komus go przesledzic i zasugerowac, w jaki sposob mozna byloby go zmodyfikowac (lub zastosowac jakies lepsze rozwiazanie), bylbym bardzo wdzieczny. Z gory dziekuje.

-------------------------------------
Baza danych:
-------------------------------------

  1. CREATE DATABASE `formularz`
  2.  
  3. CREATE TABLE `user` (
  4. `idu` int NOT NULL AUTO_INCREMENT,
  5. `loginu` varchar(30) NOT NULL DEFAULT 'blank',
  6. `fname` varchar(35) NOT NULL DEFAULT 'blank',
  7. `email` varchar(35) NOT NULL DEFAULT 'blank',
  8.  
  9. PRIMARY KEY (`idu`)
  10. );


-------------------------------------
Skrypt:
-------------------------------------

  1. <?php
  2. echo '<form action="" method="post">';
  3. include("polacz.php");
  4.  
  5. $zapytanie = "SELECT * FROM user ";
  6. $wykonaj = mysql_query ($zapytanie);
  7. echo 'Wybierz uzytkownika:'.'<br>';
  8. echo '<select name="loginy" onchange="this.form.submit()">';
  9. echo '<option>----------</option>';
  10. if ($wykonaj) {
  11. while ($wiersz = mysql_fetch_array($wykonaj)) {
  12. $loginu = $wiersz['loginu'];
  13.  
  14. $wyswietl = "<option value=\"$loginu\">$loginu</option>";
  15. echo "$wyswietl";
  16. }
  17. }
  18. echo "</select>";
  19. echo "<br>" ;
  20.  
  21. $id=$_GET['idu'];
  22. $loginy = $_POST['loginy'];
  23.  
  24.  
  25. include("scripts/polacz.php");
  26. $wynik = mysql_query("SELECT * FROM user WHERE loginu='$loginy'")
  27. or die("Błąd w zapytaniu!");
  28.  
  29. $rek = mysql_fetch_array($wynik);
  30. echo '<input name="imie" type="text" value='.$rek['fname'].'>';
  31.  
  32. echo "<br>" ;
  33. echo '<input name="imie" type="text" value='.$rek['email'].'>';
  34.  
  35. echo '</form>';
  36.  
  37. ?>


-------------------------------------
polacz.php
-------------------------------------

  1. <?php
  2.  
  3. $db=mysql_pconnect('localhost','*******','*******');
  4. if (!$db)
  5.  
  6. {
  7. echo "<script language='javascript' type='text/javascript'>alert('Error. Connection with database failed. Please try again.'); </script>";
  8. }
  9.  
  10. $db1=mysql_select_db('formularz');
  11. if (!$db1)
  12.  
  13. {
  14. echo "<script language='javascript' type='text/javascript'>alert('Error. Database unavailable now. Please try again.'); </script>";
  15. }
  16.  
  17. ?>
thek
Magiczne słowo... AJAX. I popraw bbcode a nie wklejasz kod ciurkiem. Nie dlatego są w bbcode znaczniki dla kodowania w php czy JavaScript by sobie ludzie je olewali.
jeden5a
Niestety nie znam Ajaxa, potrzebuje to zrobic w php o ile jest taka mozliwosc.
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.