Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie zawartości zmiennych, Tytuł nie bardzo ujmuje mój problem :/
hao
post
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 12.02.2004

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


Mam taki głupiutki problem... Otóż:
1. Mam formularz checkbox.
2. Zaznaczam kilka pól.
3. Skrypt łączy je w jeden ciąg.
Powiedzmy, że nazwy zmiennych wyglądają tak:
  1. <?php
  2. $box[0]=&#092;"\"
  3. $box[1]=&#092;"\"
  4. $box[2]=&#092;"Lody\"
  5. $box[3]=&#092;"Ciasteczka\"
  6. $box[4]=&#092;"\"
  7. $box[5]=&#092;"Pizza\"
  8. ?>

Ilość pól jest generowana dynamicznie. Więc aby połączyć te pola niby mógłbym użyć takiej funkcji:
  1. <?php
  2.  
  3. $ciag=&#092;"\";
  4. for($j=0;$j<100;$j++)
  5. {
  6. if($box[$j]!=&#092;"\"):
  7. {
  8. $ciag.=&#092;"{$box[$j]}|\";
  9. }
  10. endif;
  11. }
  12. ?>

No i niby wszystko działa, ale jeśli użytkownik wygeneruje sobie ankietę, gdzie będzie do wyboru 101 odpowiedzi to to łączenie pól nie sprawdzi się.

Pasowała by raczej pętla z:
  1. <?php
  2.  
  3. $j=0;
  4. while(isset($box[$j]))
  5. {
  6. ...
  7. $j++;
  8. }
  9.  
  10. ?>

Ale wówczas jeśli użytkownik nie zaznaczy pierwszego lub n-tego pola to w tym miejscu się skrypt zakończy (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ten sam problem uniemożliwia mi policzenie wszystkich pól do pętli for.

Jeszcze myślałem nad tym, aby umieścić w generatorze formularza
<input type=hidden name=ilepol value=\"$iloscpol\"> ale z tym miałbym kłopot... dużo poprawiania.. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Ma ktoś może jakiś pomysł?
Javascript odpada, projekt musi by w php.
Dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Nazwij te chexkboxy po prostu box[] każdy a nie box[1], box[2] itd.
Go to the top of the page
+Quote Post
marcin96
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 21.08.2003
Skąd: Będzin

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


  1. <?php
  2.  
  3. $ciag= '';
  4. $c = count($box);
  5.  
  6. for($j=0;$j<$c;$j++)
  7. {
  8.  if(!empty($box[$j])):
  9.  {
  10.  $ciag.= $box[$j] .'|';
  11.  }
  12. }
  13. ?>


może tak?

..swoją drogą - nie możesz po prostu zrobić na stronie takiego kodu html:
  1. <input type="checkbox" name="box[]" value="Lody">Lody <br>
  2. <input type="checkbox" name="box[]" value="Ciasteczka">Ciasteczka <br>
  3. <input type="checkbox" name="box[]" value="Pizza">Pizza <br>
  4. <input type="checkbox" name="box[]" value="Hamburger">Hamburger <br>


..i teraz obsluga tego to pryszcz:
  1. <?php
  2.  
  3. $ciag = implode('|', $box);
  4.  
  5. ?>


i szybciej, i wiadomo o co biega ;>)
Go to the top of the page
+Quote Post
hao
post
Post #4





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 12.02.2004

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


Dzięki za podpowiedzi, niebawem sprawdzę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował hao 22.06.2004, 11:49:59
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 - 22:23