Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pole select, Zapamiętywanie ustawienia
olej3232
post 11.01.2010, 10:13:30
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.11.2009

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


Witam, na wstępie zaznaczę że zaczynam przygodę z php i mam mały problem z polem <select>
Poniżej kod który przy pomocy jakiegoś gotowca znalezionego w sieci udało mi się wyskrobać.
Pole select działa, niestety nie mam pojęcia jak zrobić, żeby po błędzie zwróconym przez formularz pole nie wracało do domyślnej pozycji. Domyślam się że ten kod jest mało profesjonalny, dlatego, jeśli ktoś ma ciekawsze rozwiązanie, był bym wdzięczny.
  1. <select name="xyz" value=''>
  2. <option value="1">Wybierz...</option>
  3.  
  4. <?php
  5. $q = 'SELECT name, FROM baza';
  6. $result = mysql_query( $q );
  7. $row = mysql_fetch_array( $result );
  8. $row['name'];
  9. while( $row = mysql_fetch_array( $result ) )
  10. {
  11. echo '<option value="'.$row['name'].'">'.$row['name'].'</option>';
  12. }
  13. ?>
  14.  
  15. </select>


Ten post edytował olej3232 11.01.2010, 11:10:48
Go to the top of the page
+Quote Post
piotrooo89
post 11.01.2010, 10:35:06
Post #2


Newsman


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




żeby debbugować używaj mysql_error

  1. $result = mysql_query( $q ) or die(mysql_error());


a błąd masz tu:

  1. $q = 'SELECT name, FROM baza';


--------------------
Go to the top of the page
+Quote Post
olej3232
post 11.01.2010, 11:13:06
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.11.2009

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


Nie szukam błędu, fakt, zapomniałem wymazać przecinka. Pierwotnie wyciągałem więcej rzeczy z bazy.
Cytat
żeby debbugować używaj mysql_error

Możesz jakoś uzasadnić?
Wolał bym wiedzieć dlaczego tak a nie inaczej.
Dzięki smile.gif
Go to the top of the page
+Quote Post
zaksmok
post 11.01.2010, 11:23:14
Post #4





Grupa: Zarejestrowani
Postów: 58
Pomógł: 2
Dołączył: 12.01.2006

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


Odpowiedź: W HTMLu aby zaznaczyć jakąś opcję jako default używa się atrybutu "selected"
  1. <select name="xyz" value=''>
  2. <option value="1">Wybierz...</option>
  3.  
  4. <?php
  5. $q = 'SELECT name, FROM baza';
  6. $result = mysql_query( $q );
  7. $row = mysql_fetch_array( $result );
  8. $row['name'];
  9. while( $row = mysql_fetch_array( $result ) )
  10. {
  11. $s=''
  12. if($row['name']==$_POST['name']) $s='selected';
  13. echo '<option value="'.$row['name'].'"'.$s.'>'.$row['name'].'</option>';
  14. }
  15. ?>
  16.  
  17. </select>


Przenalizuj zmianę w kodzie..
Go to the top of the page
+Quote Post
piotrooo89
post 11.01.2010, 11:27:17
Post #5


Newsman


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




Cytat(olej3232 @ 11.01.2010, 11:13:06 ) *
Nie szukam błędu, fakt, zapomniałem wymazać przecinka. Pierwotnie wyciągałem więcej rzeczy z bazy.


jak nie szukasz błędu to nigdy Ci nie będzie poprawnie działać, no chyba że jesteś już tak dobry że nie robisz błędów...

zobacz co na temat mysql_error pisze w manualu, będziesz wiedział wszystko.


--------------------
Go to the top of the page
+Quote Post
olej3232
post 11.01.2010, 12:34:23
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.11.2009

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


Źle się zrozumieliśmy. Kod zamieszczony na forum to okrojona wersja tego co mam (stąd błąd). W skrypcie go niema, ponieważ były dwa pola wyciągane z bazy. Robię całą masę błędów, jak wspomniałem w pierwszym poście (zresztą widać po temacie) jestem początkujący. Choć idzie mi coraz lepiej. smile.gif Dziękuję za pomoc i pozdrawiam
Go to the top of the page
+Quote Post
celbarowicz
post 11.01.2010, 23:59:36
Post #7





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


php
ja stosuję session_start(), następnie formularz , method=post action=questionmark.gif i onChange="submit()" w selekcie, dane przekazywane sę do innego pliku php, gdzie jest session_start i zapamiętywane są jako zmienne sesyjne,hederem wracamy do pierwszego pliku i mamy wielkość której użyliśmy selectem.
pokombinuj. mi udałosię zrobić w ten sposób trzy zależne SELECTY. jest to przeładowanie którego się unika, ale ...co tam..questionmark.gif
kombinuj...kombinuj
pozdrawiam
Go to the top of the page
+Quote Post
olej3232
post 14.01.2010, 15:09:36
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.11.2009

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


Metoda podana przez zaksmok-a działa dokładnie tak jak chciałem smile.gif Troszkę zabawy i nawet formularz pozwalający na edycję działa jak powinien smile.gif

Jeszcze raz dzięki za pomoc.

Ten post edytował olej3232 14.01.2010, 15:10:17
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 14:03