Przekazywanie tablic przez $_POST

0

Hej, mam taki problem.
Staram sie przekazać tablice jako odpowiedź którą zaznacza użytkownik.
Problem polega na tym, ze odpowiada on na kilka pytań (tablica zbiera odpowiedzi na jedno z pytań).
Chciałbym przesłać tę tablicę jednak nie mogę tego zrobić.

Robię to w następujący sposób:
Case '3' to przypadek w którym przesyła odpowiedź w postaci tekstu.
Zapisuje ją jako OdpowiedzX gdzie X to numer pytania na które odpowiada, np jeżeli udzielił odpowiedzi na trzecie pytanie to zmienna bedzie nosić nazwę OdpowiedzX i zawierać treść którą wpisał.
Indeksowanie jest mi potrzebne by następnie zapisywać je w pamięci.

Case '4' staram się zrobić analogicznie tylko z tablicą i niestety jest tutaj problem.

            case '3' : // wlasny tekst
            
                echo "<input type=hidden value=$typ_odp name=typ_odpowiedzi$licznik>";// nie uzywamwysylam nr odpowiedzi
                echo "<input type=hidden value=$id_pytania name=id_pytania$licznik>"; // id pytania do ktorego udzielam odpowiedzi
                echo "<input type=text name=odpowiedz$licznik maxlength='1000'><br />";
                break;
                
            case '4' : // o ktorej Ci odpowiada
            // jak przeslac w tym przypadku tablice wynikow?
            $indeksowanie=1;
            $indeksowanie1=2;
            $indeksowanie2=3;
            echo "<input type=hidden value=$typ_odp name=typ_odpowiedzi$licznik>";// nie uzywamwysylam nr odpowiedzi
            echo "<input type=hidden value=$id_pytania name=id_pytania$licznik>"; // id pytania do ktorego udzielam odpowiedzi
            echo "<p>Jaka lubisz muzykę (możesz zaznaczyc więcej możliwosci)?</p>";
            echo "<input type='checkbox' name='odpowiedz$licznik'.'[]' value='Rock' />Rock<br />";
            echo "<input type='checkbox' name='odpowiedz$licznik'.'[]' value='blues' />blues<br />";
            echo "<input type='checkbox' name='odpowiedz$licznik'.'[]' value='pop' />pop<br />";

na kolejnej stronie za pomoca funkcji

 echo "'".htmlspecialchars($_POST["odpowiedz$i"])."'<br />";

odczytuje tylko jeden wyraz, funkcja implode nie działa- czyli rozumiem, ze nie została przesłana tablica.

Problem dopatruje w zapisie:
name='odpowiedz$licznik'.'[]'

Ponieważ jak mniemam string wcale nie zostaje złączony w tablicę, pozostaje zwykła zmienną.
Problem dalej jest taki, ze przy zapisie 'odpowiedz$licznik[] wymaga wpisania wartosci w tablice.
dziwne, bo w HTMLu widziałem przykład:

<p>Jaka lubisz muzykę (możesz zaznaczyc więcej możliwosci)?</p>
<input type="checkbox" name="Muzyka[]" value="Rock" />Rock<br />
<input type="checkbox" name="Muzyka[]" value="Heavy Metal" />Heavy Metal<br />
<input type="checkbox" name="Muzyka[]" value="Pop" />Pop<br />
<input type="checkbox" name="Muzyka[]" value="Techno" />Techno<br />
<input type="checkbox" name="Muzyka[]" value="Muzyka poważna" />Muzyka poważna<br />
<input type="checkbox" name="Muzyka[]" value="Inna" />Inna (podaj jaka):
<input name="Muzyka[]" />

który działa i nie wymaga podania wartości indeksująca numer tablicy.

Wybaczcie jeżeli zadaje trywialne pytanie, dopiero zaczynam- proszę o rozwiązanie problemu.
W jaki sposób wysłać odpowiedź jako tablicę, a potem ją zapisać do tablicy.

nikt, nic ;> ?

0

upraszczam pytanie:

chciałbym zrobić taki formularz:

            $odp=$licznik.'odpowiedz[]';
            echo "<input type=hidden value=$typ_odp name=typ_odpowiedzi$licznik>";// nie uzywamwysylam nr odpowiedzi
            echo "<input type=hidden value=$id_pytania name=id_pytania$licznik>"; // id pytania do ktorego udzielam odpowiedzi
            echo "<p>Jaka lubisz muzykę (możesz zaznaczyc więcej możliwosci)?</p>";
            echo "<input type='checkbox' name='$odp' value='Rock' />Rock<br />";
            echo "<input type='checkbox' name='$odp' value='blues' />blues<br />";
            echo "<input type='checkbox' name='$odp' value='pop' />pop<br />"; //'odpowiedz[]'// name='odpowiedz$licznik.[]'

gdy $odp=odpowiedz[]
To na stronie gdzie to odbieram mogę odebrać tablicę odpowiedz[], zrobic z niej deploy i wsadzic to jako odpowiedz.
Problem polega na tym, ze gdy chce to jakos indeksowac, np nazwac zmienna Xodpowiedz[] gdzie X jest zmienna indeksującą,
to nie mogę już kompletnie tego znaleźć na drugiej stronie.

Dlaczego, jak?

1

Wydaje mi się że chcesz osiągnąć coś całkiem nienormalnego opisz proszę co chcesz uzyskać bo czytając Twoje dwa posty niestety nie bardzo zrozumiałem co chcesz wykonać.

1

Tez nie kumam pytania ale jezeli zrobisz w <input type="checkbox" name="music[]" value="Rock"> to music[] jest tablica. Jesli chcesz ja indexowac wpisz <input type='checkbox' name='music['.$licznik.']' Value='rock'> i teraz sprawdz co masz w POST

1 użytkowników online, w tym zalogowanych: 0, gości: 1