Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][MYSQL] i formularz
Forum PHP.pl > Forum > Przedszkole
mirzmu
Witam,

Prosze o wyjasnienie i pomoc w rozwiazaniu nastepujacej kwestii:

- stworzylem formularz html z polem typu select
- wartosc opcji wyboru pola select jest pobierana dynamicznie z kolumny bazy danych MySQL (powiedzmy nazwa) - w zaleznosci od tej wartosci maja byc wykonywane dalsze operacje..
- pobieranie z MySQL dziala i wartosci wyboru wyswietlane w polu select sa poprawne

I teraz problem:

- zawartosc pola select jest wysylana metoda POST do obrobki w pliku php, z tym ze:
jezeli wartosc wyboru jest 1 -wyrazowa - wszystko jest OK - wartosc $_POST["nazwa"] w pliku php odpowiada wartosci w polu select;
jezeli wartosc wyboru jest wielowyrazowa (rozdzielona spacja np. Szkoła Podstawowa) - to wartosc $_POST["nazwa"] zawiera tylko 1 człon - w tym wypadku słowo Szkoła a reszta jest ucinana,
- uniemozliwia mi to dalsze operacje, ktore zaleza od zmiennej do ktorej przypisana jest wartosc $_POST["nazwa"]

Dla testu stworzylem w formularzu zwykle pole tekstowe wpisalem w nim "Szkoła Podstawowa" i wyslalem do tego samego pliku php - wartosc przekazana w $_POST["nazwa"] jest poprawna...

Nie wiem jak to ugryźć...

Pozdrawiam
piotrooo89
a value w optionie jest dobrze ustawione... pokaż co napisałeś trudno sie z tego tak po omacku rozeznać.
okhan
Do głowy przychodzi mi tylko taka możliwość, że albo wogole nie dajesz VALUE w cudzysłowy, albo dajesz - ale nie escapujesz danych.
nithajasz
1. Zamiast spacji w dwuczłonowych wartościach używaj " _ " .
2. Albo po prostu zmień trochę to wszystko tak by wartości były liczbami.

Przykładowo w bazie masz rekord

id - 1
name - Szkola podstawowa

Do wartości pól selecta wpisuj id..

  1. <?php
  2. $query = mysql_query("SELECT * FROM jakas_tabela");
  3. while($result = mysql_fetch_array($query)){
  4. echo "<option value=".$result['id'].">".$result['name']."</option>";
  5. }
  6. ?>


Później możesz to sprawdzać w prosty sposób po przesłaniu z formularza.

  1. <?php
  2. if($_POST['name_select']==1) { 
  3. //zrób coś...
  4. }
  5.  
  6. // lub lepiej IMO
  7.  
  8. switch($_POST['name_select']){
  9. case 1 : 
  10. //zrób coś
  11. break;
  12. case 2 :
  13. //zrób coś
  14. break;
  15. default :
  16. //zrób coś
  17. break;
  18. }
  19. ?>
mirzmu
wykorzystuje smarty ale to chyba bez znaczenia

kod formularza wyglada tak:

<form action="add.php" method="post">
<select name="klient_szukaj">
{foreach item=i from=$klient name=klient}
<option value={$i.nazwa|escape}>{$i.nazwa_escape}
{/foreach}
</select>
<input type="submit" name="Submit" value="Wybierz">
</form>
piotrooo89
jeśli są to dane z bazy ja bym to whilem wczytywał...
okhan
No to tak jak mówiłem.
Robisz <option value={$i.nazwa|escape}>
zamiast:

<option value="{$i.nazwa|escape}">
webdice
Proszę o dodanie tagów w tytule, w innym wypadku temat zostanie zamknięty.
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.