Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML][MYSQL] i formularz, prosba o wyjasnienie
mirzmu
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 6.06.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował mirzmu 9.06.2008, 08:20:58
Go to the top of the page
+Quote Post
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a value w optionie jest dobrze ustawione... pokaż co napisałeś trudno sie z tego tak po omacku rozeznać.
Go to the top of the page
+Quote Post
okhan
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 3
Dołączył: 2.06.2008
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Do głowy przychodzi mi tylko taka możliwość, że albo wogole nie dajesz VALUE w cudzysłowy, albo dajesz - ale nie escapujesz danych.
Go to the top of the page
+Quote Post
nithajasz
post
Post #4





Grupa: Zarejestrowani
Postów: 230
Pomógł: 27
Dołączył: 27.05.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
mirzmu
post
Post #5





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 6.06.2008

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




jeśli są to dane z bazy ja bym to whilem wczytywał...
Go to the top of the page
+Quote Post
okhan
post
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 3
Dołączył: 2.06.2008
Skąd: Poznań

Ostrzeżenie: (0%)
-----


No to tak jak mówiłem.
Robisz <option value={$i.nazwa|escape}>
zamiast:

<option value="{$i.nazwa|escape}">
Go to the top of the page
+Quote Post
webdice
post
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Proszę o dodanie tagów w tytule, w innym wypadku temat zostanie zamknięty.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:52