Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] Zaznaczanie opcji po przetworzeniu formularza
Robert3d
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 3
Dołączył: 22.04.2006

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


Witam mam problem nie wiem jak stworzyć warunki czy może inną metodę zastosować by:

Mam formularz z 20 checkbox-ami zaznaczam kilka. formularz przetwarza się i w tablicy $_GET pojawiają się puszka=on, nakretka=on plastik=on.
Po przetworzeniu wraca na tą samą stronę i teraz jak zrobić by opcje po przetworzeniu formularza były zaznaczone.


gdzie formularz prezentuje sie tak.
  1. while($row = mysqli_fetch_assoc($dane)){
  2. ?>
  3. <li>
  4. <div><input type="checkbox" name="<?php echo $row['rodzaj']; ?>" /></div>
  5. <div><?php echo $row['rodzaj'];?><img src="<?php echo $row['obrazek']; ?>"/></div>
  6. </li>
  7. <?php } ?>
  8. </ul>
  9. <input type="submit" value="Pokaż" />


Ten post edytował Robert3d 14.06.2011, 01:02:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Rid
post
Post #2





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Stan kontrolki w tym przypadku checkboxa można by zapisać do sesji,ale nie wiem czy to by było optymalne rozwiązanie.
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




I wlaśnie dlatego logikę aplikacji robi się PRZED wyświetlaniem. Gdy masz tak zrobione to po kliknięciu wyślij masz na serwer pchany $_POST i go przetwarzasz. Gdy się skończy robi coś na serwerze ale gdy kończy wciąż masz $_POST dostępny. Teraz w czasie wyświetlania sprawdzasz czy w zmiennej $_POST ten checkbox wystąpił i jeśli tak, dajesz mu checked. Mniej więcej coś w deseń:
  1. <?php
  2. //tu jakiś kod do połączenia z bazą i wstępnych operacji
  3. //ja tworzę sobie też zmienną z wszystkimi domyślnymi wartościami formularza, co załatwia mi też problem warningów "index undefined" co jest zmorą początkujących ;)
  4. $fields = array( 'input' => 'wartość', 'input2' => 'wartość', 'checkbox' => false, 'checkbox2' => true );
  5. if( array_key_exist( 'submit', $_POST ) ) {
  6. //tu przetwarzasz i w razie czego robisz przypisania post do fields w stylu
  7. $fields['checkbox'] = true;
  8. }
  9. //czas na wyświetlanie
  10. ?>
  11. <form method="post", action="">
  12. <input type="text" name="input" value="<?php echo $fields['input']; ?>" />
  13. <input type="" name="input2" value="<?php echo $fields['input2']; ?>" />
  14. <input type="" name="checkbox"<?php echo ( $fields['checkbox'] ? ' checked="checked"' : ''); ?> />
  15. <input type="" name="checkbox2"<?php echo ( $fields['checkbox2'] ? ' checked="checked"' : ''); ?> />
  16. <input type="submit" name="submit" value="Wyślij" />
  17. </form>


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Robert3d
post
Post #4





Grupa: Zarejestrowani
Postów: 102
Pomógł: 3
Dołączył: 22.04.2006

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


Dziękuję za pomoc smile.gif wszystko działa

Mam jeszcze pytanie odnośnie zapytania SQL dla tego typu rozwiązania czy dla każdej z opcji musi być LIKE?
AND LIKE
AND LIKE i tak aż cały formularz zrobie??
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To JAK to ma działać w połączeniu z bazą jest już zależne od jej struktury. Na tym właśnie polega dobra strona takiego rozdzielenia. Masz całkowicie niezależne generowanie formularza od tego co robisz w logice aplikacji czy po stronie bazy. Nie mieszasz obu. Jak dla mnie rozwiązań może być wiele:
1) złączenie typu many-to-many,
2) serializowana tablica,
3) osobne kolumny w tabeli dla każdego checkboxa
żeby tylko wymienić 3 najpopularniejsze rozwiązania.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Robert3d
post
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 3
Dołączył: 22.04.2006

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


zrobiłem na razie oddzielnie dla każdego checkboxa dla aktywnego 1 dla nie 0 i według tego przez like 1 i formularz składa mi zapytanie typu and like
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: 21.08.2025 - 10:13