Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Formularz i problem ze zmiennymi
Forum PHP.pl > Forum > PHP
coder()
Witam.
Mam formularz z 4 listami Select typu Muptiple, czyli z każdej listy mogę wybrać wiele wyników. Niekoniecznie w kolejności takiej jak wskazuje lista.
No i teraz jest problem bo mam dosyć spory skrypt do obsługi danych z tego formularza, który robi różne rzeczy w zależności od wybranych opcji. Nie wiem w jaki sposób przesłać zmienne z formularza do tego skryptu (a raczej chodzi mi o metode).
____________________
Ja osobiście wymyśliłem coś takiego żeby było najprościej... (Chyba biggrin.gif)
(gwiazdki oznaczają wybraną pozycje)


1 lista
>opcja1*
>opcja2
>opcja3*
>opcja4*

2 lista
>opcja1*
>opcja2
>opcja3
>opcja4*

No i teraz wynik z każdej z list mógłby być przedstawiany binarnie czyli dla pierwszej listy 1011 a dla drugiej 1001. Teraz jaiś mniejszy skrypt by rozdzielał mi każdą liczbe na pojedyncze bity, przekazywane następni9e do tego wikszego. I jeśli 1 to wykonuje sie skrypt a jeśli 0 to nie biggrin.gif Tylko ma to jedną wade... że każde wywołanie skryptu bedzie identyczne bo poszczególne jedynki sie od siebie niczym nie różnią (haha) i nie ma możliwości przesłania jakiś dodatkowych instrukcji.
_______________________

Ma ktoś jakieś lepsze pomysły?? bo dla większej liczby pozycji (powiedzmy około 100 dla każdej z list) to przeszukiwanie tablicy POST za pojedynczymi wartościami może być chyba kłopotliwe nie??
batman
W nazwie selecta użyj zapisu tablicowego (nie wiem jak to inaczej nazwać). Wygląda to mniej więcej tak:
  1. <form method="post">
  2. <select name="nazwa[]" multiple="multiple">
  3. <option value="123">aaaa</option>
  4. <option value="1123">1aaaa</option>
  5. <option value="12223">22aaaa</option>
  6. </select>
  7. <input type="submit" />
  8. </form>


Po wysłaniu formularza w tablicy $_POST będziesz miał przypisaną do klucza "nazwa" tablicę, zawierającą zaznaczone elementy.
Cotter
Nie bardzo rozumiem w czym problem. Możesz powiedzieć dlaczego nie wykorzystujesz zwykłego (domyślnego) przesyłania zmiennych przez POST lub GET? Do przesyłania wielu wartości można wykorzystać nazwę, która pozwoli na wysłanie wszystkich zaznaczonych pól. Cały kruczek tkwi w [].

Na przykład tak:
Kod
<form method="POST">
    <select multiple="multiple" name="wybor[]">
        <option value="1">aaa</option>
        <option value="2">bbb</option>
    </select>
    <input type="submit" value="wyslij" />
</form>


I w PHP odbierasz to tak:
Kod
foreach ($_POST["wybor"] as $val)
{
    echo $val; //tutaj wyswietlaja sie wszystkie zaznaczone wartosci
}
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.