Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pola checkbox wformularzu i skrypt PHP
Forum PHP.pl > Forum > PHP
debian
Witam, mam w fromularzu pola wyboru checkbox i nie wiem jak zrobic zeby skrypt (<form action="skrypt.php") dodawał do wysyłanego mejla tylko zaznaczone pola

EDIT:

  1. <input type="checkbox" name="check[]" value="cos cos" id="checkbox_css" />
  2. <input type="checkbox" name="check[]" value="cos" id="checkbox_css" />
  3. <input type="checkbox" name="check[]" calue="cos2" id="checkbox_css" />
  4. <input type="checkbox" name="check[]" value="cos3" id="checkbox_css" />
  5. <input type="checkbox" name="check[]" value="cos4" id="checkbox_css" />
  6. <input type="checkbox" name="check[]" value="cos5" id="checkbox_css" />


Wszystko zrobiłem tylko nie moge przypisać tej pętli
  1. <?php
  2. foreach($_POST['check'] as $index=>$wartosc){
  3. echo $wartosc.',';
  4. }
  5. ?>
do zmiennej. Bo chciałbym ten wynik wysłać mejlem a podczas przetwarzania wywala błędy. Normalnie jak wyświetlam to działa elegancko ale jak przypisuje do zmiennej $blble i pote w tresci forma dodaje tą zmienną to mi wykrzacza błędy w linijce w której przypisywałem to do zmiennej:

$blble='foreach($_POST['check'] as $index=>$wartosc){echo $wartosc.',';}';
Crozin
1) ID dla elementu musi być unikalne w obrębie dokumentu
2)
  1. <input type="checkbox" name="abc[5]" value="Buty sportowe" />
  2. <input type="checkbox" name="abc[6]" value="koszulki" />

3) I zobacz jakie informacje docierają do skryptu:
  1. <?php
  2. var_dump($_POST);
  3. ?>

4) Całość powinieneś sobie złożyć bez problemu.
debian
Innaczej to jakoś zrobiłem bo nie wiem o co chodzi z tym var dumpem posta skoro mam tez inne pola post ($_POST['name']) itd.

wiec innaczej zapytam, jak przypisac taką pętle do zmiennej, żebym później mógł zrobić echo $zmienna i sie wyswietli to co wyświetla pętla.
Syntaxy sie wysypują.

foreach($_POST['check'] as $index=>$wartosc){
echo $wartosc. ',';
}
Crozin
Z tym var_dumpem to chodziło o to, żebyś zobaczył w jakim formacie masz przesyłane dane.

Przeanalizuj:
  1. <?php
  2. if(count($_POST)){
  3.    echo '<pre>'.print_r($_POST, 1).'</pre>';
  4.    
  5.    $a = array();
  6.    foreach((array) $_POST['abc'] as $key => $val){
  7.        $a[] = sprintf('klucz: %s, wartość: %s', $key, $val);
  8.    }
  9.    $a = implode(',<br /> ', $a);
  10.    
  11.    echo $a;
  12. }
  13. ?>
  14. <form action="" method="post">
  15.    <input type="text" name="test" value="ala" />
  16.    <input type="checkbox" name="abc[5]" value="Buty sportowe" />
  17.    <input type="checkbox" name="abc[6]" value="koszulki" />
  18.    <input type="checkbox" name="abc[7]" value="7emka" />
  19.    <input type="checkbox" name="abc[8]" value="8emka" />
  20.    <input type="submit" />
  21. </form>
debian
Innaczej to rozwiązałem:

  1. <?php
  2. $wartosc = array();
  3. foreach($_POST['check'] as $key => $value) {
  4.    $wartosc[] = $value;
  5. };
  6.  
  7. $wartosc = join(', ', $wartosc);
  8. ?>

I wtedy w mail() dodaje sobie tylko $wartosc i mi wyświetla ładnie po przecinku wszystko.
Crozin
Cytat
Innaczej to rozwiązałem:
Ale przecież to jest to samo co ja Ci podałem, z tym, że inaczej sobie wynik sformatowałeś. winksmiley.jpg

PS. Przed $_POST['check'] dodaj (array) (tak jak ja) - inaczej może Ci warningami skrypt rzucać.
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.