Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
 
Start new topic
Odpowiedzi (1 - 4)
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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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ę 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 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()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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... winksmiley.jpg
Przejrzę in_array przy okazji.
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 Aktualny czas: 22.08.2025 - 03:48