Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Prosty problem - uzupełnienie skryptu.
Forum PHP.pl > Forum > Przedszkole
koperkuba
Potrzebuje jedną rzecz do tego skryptu - pewnie banalną, ale to mój pierwszy skrypt. Pracownicy mają przypisane ulice. W formularzu podajesz ulice - pokazuje ci do jakiego pracownika ona należy. I teraz:
- jeśli nie wpisze nic - pojawi się komunikat 'Nie podano adresu'
- jeśli wpisze prawidłową ulicę - pojawią się dane pracownika.
- jeśli nie wpisze prawidłowej ulicy - żadnej z podanych z if - to.... chce żeby się pojawił komunikat "Podano zły adres, lub ulica nie ma przypisanego pracownika".


<?php
$ulicapracownika = $_POST['ulicapracownika'];

if ($ulicapracownika == NULL) echo 'Nie podano adresu';

if ($ulicapracownika == Nawojowska) echo 'Twój pracownik to Koprowski';
if ($ulicapracownika == Dworska) echo 'Twój pracownik to Sierotowicz';


?>
nexis
Dane przechowuj najlepiej w tablicy, a nazwy ulic wpisuj w niej małymi literami

  1. <?php
  2. $pracownicy = array( 'nawojowska' => 'Koprowski', 'dworska' => 'Sierotowicz' );
  3. ?>


A warunki i odpowiednie komunikaty wyglądają wtedy tak

  1. <?php
  2. if ( empty( $_POST['ulicapracownika'] ) ) echo 'Nie podano adresu!';
  3. else {
  4. if ( array_key_exists( strtolower( $_POST['ulicapracownika'] ), $pracownicy ) ) echo 'Twój pracownik to ' . $pracownicy[strtolower( $_POST['ulicapracownika'] )];
  5. else echo 'Podano zły adres!';
  6. }
  7. ?>


Całość prezentuje się zatem następująco

  1. <?php
  2. $pracownicy = array( 'nawojowska' => 'Koprowski', 'dworska' => 'Sierotowicz' );
  3.  
  4. if ( empty( $_POST['ulicapracownika'] ) ) echo 'Nie podano adresu!';
  5. else {
  6. if ( array_key_exists( strtolower( $_POST['ulicapracownika'] ), $pracownicy ) ) echo 'Twój pracownik to ' . $pracownicy[strtolower( $_POST['ulicapracownika'] )];
  7. else echo 'Podano zły adres!';
  8. }
  9. ?>


Dzięki takiemu rozwiązaniu masz czysty kod, prosty sposób dodania nowej ulicy i przypisania jej pracownika oraz właściwy wynik niezależnie od DUŻYCH czy małych liter użytych w formularzu.
koperkuba
Wywala mi błąd:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\www\przetworzrejon.php on line 14

A nie, już ok. Poradziłem sobie. Literówka była. Niemniej wielkie dzięki:)

Cytat(nexis @ 11.06.2007, 08:41:10 ) *
właściwy wynik niezależnie od DUŻYCH czy małych liter użytych w formularzu.

A to już nie chce działać....
nexis
A zmieniałeś coś w kodzie? Jeśli tak to przedstaw go proszę...
koperkuba
  1. <body>
  2. <form action = "formul.php" method=post>
  3. <table border = 0>
  4. <tr> 
  5. <td size= "10">Ulica</td>
  6. <td allign = "center"><input type = "text" name = "ulicapracownika" size = "30" max length = "30" />
  7. </td>
  8. <td align = "center"> <input type = "submit" value = "Szukaj pracownika"></td>
  9. </tr>
  10. </table>
  11.  
  12.  
  13. <?php
  14.  
  15. $pracownicy = array( 
  16.  
  17. 'Nawojowska' => 'Koprowski', 
  18. 'Dworska' => 'Sierotowicz'
  19.  
  20. );
  21.  
  22.  
  23. if ( empty( $_POST['ulicapracownika'] ) ) echo 'Nie podano adresu!';
  24.  
  25.  
  26. else 
  27.  
  28. {
  29.  
  30. if ( array_key_exists( $_POST['ulicapracownika'], $pracownicy ) ) 
  31.  
  32. echo 'Twój  pracownik to ' . $pracownicy[$_POST['ulicapracownika']];
  33.  
  34. else 
  35. echo 'Podano zły adres, albo adres do którego nie przypisano pracownika!';
  36. }
  37.  
  38. ?>
  39.  
  40. </body>
nexis
Napisałem przecież, żebyś nazwy ulic wpisał z małych liter do tablicy

  1. <body>
  2. <form action="formul.php" method="post">
  3. <table border="0">
  4. <tr>
  5. <td size="10">Ulica</td>
  6. <td align="center"><input type="text" name="ulicapracownika" size="30" /></td>
  7. <td align="center"><input type="submit" value="Szukaj pracownika" /></td>
  8. </tr>
  9. </table>
  10.  
  11. <?php
  12. $pracownicy = array( 
  13. 'nawojowska' => 'Koprowski',
  14. 'dworska' => 'Sierotowicz'
  15. );
  16.  
  17. if ( empty( $_POST['ulicapracownika'] ) ) echo 'Nie podano adresu!';
  18. else {
  19. if ( array_key_exists( strtolower( $_POST['ulicapracownika'] ), $pracownicy ) ) echo 'Twój pracownik to ' . $pracownicy[strtolower( $_POST['ulicapracownika'] )];
  20. else echo 'Podano zły adres!';
  21. }
  22.  
  23. ?>
  24.  
  25. </form>
  26. </body>


I proszę STOSUJ TAGI!
koperkuba
Cytat(nexis @ 11.06.2007, 10:13:53 ) *
Napisałem przecież, żebyś nazwy ulic wpisał z małych liter do tablicy
Ok poprawiłem. Wszystko ładnie działa. Jeszcze raz dzięki!


Cytat(nexis @ 11.06.2007, 10:13:53 ) *
I proszę STOSUJ TAGI!

Poprawiłem:)
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.