Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie zawartości zmiennych
Forum PHP.pl > Forum > PHP
hao
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 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.. sad.gif
Ma ktoś może jakiś pomysł?
Javascript odpada, projekt musi by w php.
Dzięki
kszychu
Nazwij te chexkboxy po prostu box[] każdy a nie box[1], box[2] itd.
marcin96
  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 ;>)
hao
Dzięki za podpowiedzi, niebawem sprawdzę smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.