Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pole select, Zapamiętywanie ustawienia
olej3232
post
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
 
Start new topic
Odpowiedzi (1 - 7)
piotrooo89
post
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
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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
zaksmok
post
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
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
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. (IMG:style_emoticons/default/smile.gif) Dziękuję za pomoc i pozdrawiam
Go to the top of the page
+Quote Post
celbarowicz
post
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=(IMG:style_emoticons/default/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..(IMG:style_emoticons/default/questionmark.gif)
kombinuj...kombinuj
pozdrawiam
Go to the top of the page
+Quote Post
olej3232
post
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 (IMG:style_emoticons/default/smile.gif) Troszkę zabawy i nawet formularz pozwalający na edycję działa jak powinien (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 06:45