Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] uzupełnianie formularza
Forum PHP.pl > Forum > Przedszkole
em-ba
Witam, mam formularz, z którego dodawane są dane do bazy.. i teraz jak zrobić tak, zeby przykładowo pole imię nie było wymagane do wpisania, a żeby pozostałe podane dane się wpisały?

Poki co korzystam z takiego kodu:
  1. <form action="cos.php" method="POST">
  2. <div>
  3. <label for="imie">imię:</label>
  4. <input id="imie" name="imie" class="text" type="text" value="<?=$imie;?>" />
  5. </div>
  6. <div>
  7. <label for="nazwisko">nazwisko:</label>
  8. <input id="nazwisko" name="nazwisko" class="text" type="text" value="<?=$nazwisko;?>" />
  9. </div>
  10. <div>
  11.  <label for="login">login:</label>
  12.  <input id="login" name="login" class="text" type="text" value="<?=$login;?>" />
  13.  </div>
  14. </form>

  1. <?php
  2. $pol = @mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('zapa') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5. $qr = "INSERT INTO `cos` (`imie`,`nazwisko`,`login`)
  6. VALUES('".$imie."', '".$nazwisko."', '".$login."')";
  7. $wyk = mysql_query ($qr) or die(mysql_error());
  8. ?>
MMX3
uściślij. co to znaczy śię wpisały? Dodajesz nowy rekord?

Pamiętaj że zawsze przy polach obowiązkowych wymagana jest Validacja formularza. Bo do MySQL można wrzucić sporo bzdur.

  1. <?php
  2. $errors = array()
  3. if($_POST['nazwisko'] == '') {
  4. $errors['nazwisko'] = 'nazwisko jest polem obowiązkowym';
  5. }
  6. if(is_numeric($_POST['kolejnepole']) {
  7. $errors['kojenepole'] = 'wprowadź prawidłowo numer';
  8. }
  9. //teraz wrzucasz do bazy jeżeli tablica errors jest pusta w przeciwnym wypadku (jeżeli są błędy to wyświetlasz formularz z wartościami (value="{$_POST['nazwapola']}") oraz odpowienio obok inputa dodajesz komunikat o błędzie.
  10. if(count($errors)==0) {
  11. //odpal baze danych i sql
  12.  
  13. }else{
  14. //wyswietl formularz
  15. }
  16. ?>


Pozdro
em-ba
mam walidację zrobioną smile.gif ale dzieki..

chodzi o to aby użytkownik, który ma przed sobą formularz i go uzupełnia to zeby nie musiał wypełnić wszystkiego ale tylko obowiązkowe pola..
zeby było mniej więcej tak:
imię
nazwisko*
login*

(*-wymagane pola)

i teraz do bazy bedzie wpisywane
imie | nazwisko | login
jan | kowalski | jkowal
pusto| iksiński | iks


obecnie mam tak, że zeby dodać wpis do bazy to muszą być uzupełnione wszystkie pola i nie wiem jak to zmienić..

..mam nadzieje, że teraz jaśniej opisałem winksmiley.jpg
MMX3
jeżeli zostawi je puste to $_POST['nazwapola'] jest równa pustemu stringowi (''). Jak wrzucisz to do bazy to nic się nie stanie. Chyba że pole jest indexem.
em-ba
jak wrzucam coś na zasadzie
  1. <?php
  2. $qr = "INSERT INTO `cos` (`imie`,`nazwisko`,`login`)
  3. VALUES("", '".$nazwisko."', '".$login."')";
  4. ?>

to wyrzuca błąd, że kolumna o podanej nazwie nie istnieje czy jakoś tak....
Shili
W takim razie błąd nie jest z wartosciami, a z nazwami pól, lub weź pod uwagę, że nie wpisujesz pustej zawartości. Kończysz i zaczynasz jedynie string. Zamiast podwójnych cudzysłowów spróbuj użyć pojedynczych do określenia pustego stringa.
em-ba
ok, dzieki, teraz działa smile.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.