Salve a tutti.
Una pagina php riceve per post, o per get indifferentemente, un numero imprecisato di valori che hanno tutti il nome contenente lo stesso prefisso, e seguito da un numero, per esempio
var_1, var_2, var_3,... ecc
e io voglio memorizzarli in un array
lista[0], lista[1], lista[2],... ecc
di questi valori è possibile che non ne venga passato nessuno, così come è possibile che ne vengano passati diversi.
Oltre a questi valori sopracitati, nella pagina ve ne sono molti altri con nomi diversi e totalmente ininfluenti, se non per il fatto di escludere uno sviluppo del problema attraverso un generico
foreach($_POST as $var => $value)
....
// tagliato
Il problema va quindi risolto in maniera alternativa, e la mia soluzione, criticata da alcuni utenti di un altro forum è la seguente.
Le critiche che mi vengono mosse sono vaghe, ovvero "non viene condiviso il mio approccio", (forse) soltanto per il modo in cui sviluppo il ciclo while...
Ditemi cosa ne pensate
<?php
if(isset($_POST['cmd'])){
$lista = Array(); // array contenente gli ipotetici valori passati
$lista_counter=1; // contatore del numero di elementi dell'array
while($lista[]=$_POST['var_'.($lista_counter)]){ // ciclo while incriminato
$lista_counter++;
}
var_dump($lista); // output di prova
}
?>
<form action='' method='post'>
<input type='hidden' name='cmd' value='do'>
<script language='Javascript'>
var n=Math.floor(Math.random()*11);
for(var i=0; i<=n; i++){
document.write("<input type='hidden' name='var_"+i+"' value='"+i+"'>");
}
</script>
<input type='submit'>
</form>