odbieranie wartości z dynamicznych formularzy

0

witam,
Mam np taki kod:

<!--jakis kod-->

<input type="text" name="question[]"/>
<input type="text" name="question[]"/>
<input type="text" name="question[]"/>

<!--jakis kod-->

<input type="text" name="question[]"/>
<input type="text" name="question[]"/>

<!-- itd. -->

i teraz w php mam odbieranie tych danych np.

$q = $_POST['question'];
foreach($q as $question => $position) {
echo $position . '<br />';
}

Tych pól input może być więcej np. jeszcze z 5 razy. Nie wiadomo ile jest tych pól input pomiędzy ponieważ
te pola są generowane dynamicznie, to user ustala sobie ile tych pól ma być. I teraz czy istnieje jakiś sposób aby po wywołaniu 'foreach' pokazały się najpierw
np te trzy pierwsze wartości potem gdzieś dalej w kodzie mogę sobie wywołać te dwie następne itd. Bo teraz to wypisuje mi oczywiście wszystkie naraz a ja chcę
to po prostu odzielić jakoś.

0

Zamiast foreach możesz użyć zwykłej pętli for i odwoływac się do tej tablicy po indeksach:
$_POST['question'][$i]
gdzie $i jest numerem ostatniego question, który pobrałeś.

W praktyce działałoby mniej więcej tak:

for ($i=0; $i<3; $i++){
    echo $_POST['question'][$i];
}
// jakiś kod
for ($i;$i < 5; $i++){
    echo $_POST['question'][$i];
}
 

I tak dalej. Albo foreachem przejechać po wszystkich pytaniach tak jak napisałeś, tylko zapisać je do kilku tablic róznych (bo skoro najpierw bierzesz kilka, potem kilka itd. to czymś się zapewne róznią) i korzystać już z tych tablic potem.

0

tylko, że w pętli for nie może być np $i<3; bo nie wiadomo ile będzie tych formularzy bo one są generowane w JS za pomocą pętli for
for(var j=1; j <= ilosc_opcji; j++){

tmp_question = tmp_question + '<input type="text" name="question[]" />';

}

po prostu skrypt kilka razy będzie wchodził do tej pętli, zależy to od użytkownika. Więc name="question[]" niczym się nie różni od innych i tu pojawia się właśnie problem.

0
$q = $_POST['question'];
$i=0;
foreach($q as $question => $position) {
if($i++<3){
echo $position . '<br />';
}
else
{
// przerwa i nie pisz, albo cos innego
}
}

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