Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]input check checked="checked"
neo1986kk
post
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


No i wszystko proste, ale:

1. W bazie mam na przykład:

jedzenie:
jajko,
barszcz,
sałata,
kapusta

oddzielone przecinkami, a chce zrobić edycje tego poprzez wlasnie input check i domyslam sie ze exploduje przez przecinek ale co dalej?

Dokladnie chodzi o to ze jest w bazie zapisane jajko, barszcz, salata, kapusta i do tego napisać formularz do edycji, że na przyklad komuś się już nie podoba jajko i chcialby to odznaczyć to wydaje mi sie ze coś na tej zasadzie

jezeli eksplodowany przez przecinek jajko = jajko to <input type="check" name="jedzenie[]" (no i jeśli tu label jest jajko ) to cheked="checked"

problem w tym ze nie wiem jak to przełożyc na php, dokladnie to np na fotce jest cos takiego do edycji hobby,zainteresowan itd...

Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Pobierasz dane z bazy potem robisz explode() na pobrany rekord, po czym robisz petle for/foreach i generujesz html.
Jesli dane pole jest w bazie dopisujesz checked do danego elementu.

W czym tkwi problem?Nie znasz php i dlatego pytasz czy co...?


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
neo1986kk
post
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


nie no pytam o samą strukturę, php znam tak sobie, jak sie bede z tym męczył to rezultaty postaram sie na bierząco pokazywać i mam nadzieje ze sobie jakoś poradzę, ale to juz jutro...

no i dobra i mam coś takiego:

  1. $jedzonko=explode(",", $zapytanie_do_bazy);


teraz w pętli powinienem sprawdzić ile jest wyodrębnionych wyrazów i utworzyć dla nich tablicę.

  1.  
  2. foreach ($jedzonko as $skladniki)
  3. {
  4. echo '<input type="checkbox" name="jedzenie[]" value="jajko" id="id_jajko"/><label for="id_jajko">jajko</label><br>
  5. <input type="checkbox" name="jedzenie[]" value="barszcz" id="id_barszcz"/><label for="id_barszcz">barszcz</label><br>
  6. <input type="checkbox" name="jedzenie[]" value="salata" id="id_salata"/><label for="id_salata">salata</label><br>
  7. <input type="checkbox" name="jedzenie[]" value="kapusta" id="id_kapusta"/><label for="id_kapusta">kapusta</label><br>';
  8. }
  9.  


i teraz w to wstawić coś takiego, że jak jeśli w bazie jest jajko, to żeby checked=checked;

  1.  
  2. foreach ($jedzonko as $skladniki)
  3. {
  4. echo '<input type="checkbox" name="jedzenie[]" value="jajko" id="id_jajko" <?if($skladniki=jajko) {?>checked="checked"<?}?>/><label for="id_jajko">jajko</label><br>.....
  5. }
  6.  


troche zmieniłem to wszystko:
  1. foreach ($jedzonko as $skladniki=>$skladnik)
  2. {
  3. echo 'key: '.$skladniki.' a value to: '.$skladnik.'<br>';
  4. }
  5.  
  6. // uzyskuje
  7. 1 jajko
  8. 2 salata
  9. ?>
  10. <input type="checkbox" name="jedzenie[]" value="jajko" id="id_jajko"
  11. <? if(($skladnik)=='jajko') echo 'checked="checked"';?>
  12. /><label for="id_jajko">jajko</label><br>
  13. <input type="checkbox" name="jedzenie[]" value="barszcz" id="id_barszcz"/><label for="id_barszcz">barszcz</label><br>
  14. <input type="checkbox" name="jedzenie[]" value="salata" id="id_salata"/><label for="id_salata">salata</label><br>
  15. <input type="checkbox" name="jedzenie[]" value="kapusta" id="id_kapusta"/><label for="id_kapusta">kapusta</label><br>';


no i to nie dziala ale jak jest if(($skladnik)='jajko') czyli z jednym znakiem to dziala ale dla obojętnie jakiego słowa, pomóżcie, proszę.

Ten post edytował neo1986kk 27.04.2010, 09:07:55
Go to the top of the page
+Quote Post
cros
post
Post #4





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

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


Cytat(neo1986kk @ 27.04.2010, 09:00:44 ) *
no i to nie dziala ale jak jest if(($skladnik)='jajko') czyli z jednym znakiem to dziala ale dla obojętnie jakiego słowa, pomóżcie, proszę.

Bo takim zapisem "if($cos="ddd")" przypisujesz zmiennej $cos wartosc "ddd", a nie sprawdzasz czy ja ma...PODSTAWY.

Go to the top of the page
+Quote Post
neo1986kk
post
Post #5





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


no to wlasnie dobrze, że podstawy, bo dopiero się uczę php. więc jak tą zmienną najpierw przypisać, żebym tu mógł sprawdzić?
Wydaje mi się, że zrobiłem to dobrze, ale jednak nie działa, kiedy ręcznie przypisałem zmienną wszystko było ok.
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




cros chcial ci powiedziec ze
= przypisanie
== porownanie
A to są podstawy wlasnie ktore powinienes juz znac zanim bierzesz sie za dalszy kod.

czyli nie if (cos = cosinnego)
a: if (cos == cosinnego)


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

"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
neo1986kk
post
Post #7





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


no to rozumiem już dlaczego z przypisaniem mi działało - dlatego, to nie ma żadnego wpływu na mojego ifa.
Domyślam się też, że skoro nie działa na if=='' to znaczy, że gdzieś wyżej nie jest to przypisane lub nie wiem jak to wydobyć, dlatego zwracam się z prośbą o pomoc

p.s. czyli wyglada na to że zmienna $skladnik jest bez wartości, chociaż echo $skladnik wyświetla na monitorze: salata.

Dziwi mnie to, że jeśli napiszę ręczniem $skladnik='salata' to wtedy pętla if $skladnik=='salata' zwraca true.


dobra już do tego doszedłem, powinno być (if $skladnik==' salata') ze spacją, ale teraz ma jeszcze inny problem:
  1.  
  2.  
  3. $i=0;
  4. $jedzonko_e= explode(",", $jedzenie);
  5. foreach ($jedzonko as $skladniki=>$skladnik)
  6. {
  7. $skladnika[$i]=$skladnik;
  8. echo $skladnika[$i];
  9. $i=$i+1;
  10. }?>


no i jest wszystko fajnie przypisane ale na tym muszę zakończyć pętlę, a teraz chciałbym to wstawić w checkboxa:

  1. <input type="checkbox" name="jedzenie[]" value="jajko" id="id_jajko"
  2. <? if(($skladnika)=='jajko') echo 'checked="checked"';?>// wydaje mi się, że tu powinienem napisać if ($skladnika[$i] =='jajko') echo 'checked="checked"'
  3. // czyli muszę zrobić pętle for dla rosnącego i. dla jednego takiego checkboxa to jeszcze ujdzie ale dla kilkunastu to bede to pisał pół roku.
  4. /><label for="id_jajko">jajko</label><br>


Odnosząc sie do mojej adnotacji, czy jest możliwość jakiegoś przeskoczenia tego, poprostu odpowiedź powinna być na pytanie: Jeśli istnieje taka zmienna $skladnik[] w której znajduje się słowo 'jajko'... a nie Jeśli, w którymś z $składnik[$i] znajduje sie słowo jajko to checked=checked..

bo tera pzostaje utworzyc petle

  1. for (i=0; i<$liczba_elementow_tablicy; i++)
  2. {
  3. if(($skladnika[$i])=='jajko') echo 'checked="checked"';
  4. }
  5.  


No to teraz muszę napisać dla każdego checkboxa... bez sensu troche...

Ten post edytował neo1986kk 27.04.2010, 12:27:54
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: 19.08.2025 - 07:25