Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] multiwybór i zaznaczanie
testujephp
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.09.2009

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


Witam,

Walczę z następującym problemem. Otóż potrzebuję formularz edycji danych pobranych z bazy danych i to jest już zrobione. Natomiast mam problem przy polu wielokrotnego wyboru - chodzi o to, żeby wybrane pola automatycznie się zaznaczyły gdy wartości się zgadzają z tym co jest w bazie danych dla dwóch tabel:

Oto skrypcik:
  1. <?
  2. $sql4 = mysql_query("SELECT * FROM przeznaczenie ORDER BY id") or die(mysql_error());
  3. $sql5 = mysql_query("SELECT przeznaczenie FROM produkt WHERE id = $id") or die(mysql_error());
  4.  
  5. while ($row4 = mysql_fetch_object($sql4)){
  6. while ($row5 = mysql_fetch_object($sql5)){
  7. $tab = explode(",",$row5->przeznaczenie);
  8. }
  9. foreach ($tab as $element) {
  10. if ($row4->id == $element) {$zaznacz = ' selected="selected"';} else {$zaznacz = '';}
  11. }
  12. echo '<option value="'.$row4->id.'"'.$zaznacz.'>'.$row4->nazwa.'</option>';
  13. }
  14. ?>


I niestety SELECT nie zaznacza pokrywających się pól z tabeli PRZEZNACZENIE z tym co jest w polu przeznaczenie w produkcie.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. foreach ($tab as $element) {
  2. if ($row4->id == $element) {$zaznacz = ' selected="selected"';} else {$zaznacz = '';}
  3. }
No to troche logiki:
co robi ta petla? Leci po wszystkich elementach $tab. Jak sie zgadza to zaznacza selected a jak sie nie zgadza to odznacza. No niby fajnie ale... jak sie zgadza dla piątego elementu to zaznaczy ale idzie dalej. dla szostego juz sie nie zgadza wiec odznacza.

Juz troche jasniej?
Go to the top of the page
+Quote Post
testujephp
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.09.2009

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


Średnio, ale kombinuję (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ech... slowo klucz w tym całym wywodzie:
Cytat
ale idzie dalej
No już lepszej odpowiedzi nie mogles uzyskac (IMG:style_emoticons/default/winksmiley.jpg)

poprawiony kod:
  1. foreach ($tab as $element) {
  2. if ($row4->id == $element) {$zaznacz = ' selected="selected"';break;} else {$zaznacz = '';}
  3. }


A wogóle to mogłbyć tę petle sobie darować i uzyc in_array()
Go to the top of the page
+Quote Post
testujephp
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.09.2009

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


Serdeczne dzięki. Wisiałem z tą pętlą od rana... (IMG:style_emoticons/default/winksmiley.jpg)
Przejrzę in_array przy okazji.
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 - 18:35