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:
-------------------------------------
CREATE DATABASE `formularz` CREATE TABLE `user` ( `idu` int NOT NULL AUTO_INCREMENT, `loginu` varchar(30) NOT NULL DEFAULT 'blank', `fname` varchar(35) NOT NULL DEFAULT 'blank', `email` varchar(35) NOT NULL DEFAULT 'blank', PRIMARY KEY (`idu`) );
-------------------------------------
Skrypt:
-------------------------------------
<?php include("polacz.php"); $zapytanie = "SELECT * FROM user "; if ($wykonaj) { $loginu = $wiersz['loginu']; $wyswietl = "<option value=\"$loginu\">$loginu</option>"; } } $id=$_GET['idu']; $loginy = $_POST['loginy']; include("scripts/polacz.php"); ?>
-------------------------------------
polacz.php
-------------------------------------
<?php if (!$db) { echo "<script language='javascript' type='text/javascript'>alert('Error. Connection with database failed. Please try again.'); </script>"; } if (!$db1) { echo "<script language='javascript' type='text/javascript'>alert('Error. Database unavailable now. Please try again.'); </script>"; } ?>