Script sondaggio

Ciao a tutti intanto e complimenti per l'ottimo lavoro.

Veniamo al dunque.

Premesso che sono un niubbo totale di php (ho iniziato da 5 giorni a studiare seriamente), ho comunque voluto sulla base delle prime nozioni sugli array creare un piccolo script per i sondaggi utilizzando la funzione array_count_value()

Fin qui tutto ok.

Poi mi è venuta la bella idea di inserire un'area amministrativa per settare le varie opzioni del sondaggio.

Ho creato un file admin.php in cui è presente un form per inserire il numero di opzioni che punta ad un file che crea un form con tanti campi quante sono le opzioni scelte (non ho inserito troppi controlli perchè al momento mi interessa solo vedere se lo script riesco a crearlo  :) )

<?
if (($_POST["opz"]) == "")
            echo ("Non puoi lasciare vuoto questo campo!");
elseif (($_POST["opz"]) == "0")
            echo ("Devono esserci almeno 2 opzioni!");
elseif (($_POST["opz"]) == "1"){
            echo ("Devono esserci almeno 2 opzioni!");
         }
else {
         echo ("<form action='index.php' method='post'>");
         echo ("<table>");
         echo ("<tr><td colspan='2'><h1>Inserisci un titolo per il tuo sondaggio</h1></td></tr>");
         echo ("<tr><td>Titolo: </td><td><input type='text' name='titolo' size='100'></td></tr>");
         echo ("<tr><td colspan='2'><h1>Inserisci le opzioni</h1></td></tr>");
         
                 for ($i=0; $i<$opz; $i++){
                          $name = "opzione";
                          echo ("<tr><td colspan='2'>Opzione <input type='text' name='" . ($name.$i) ."' size='30'></td></tr>");
                       }
         echo ("<tr><td colspan='2'><input type='submit' value='Crea sondaggio'></td></tr>");
         echo ("</table></form>");
}
?>

Bene, creato il form, il name dei vari campi imput viene impostato a "opzione0" "opzione1" ecc...

A questo punto avevo la necessità che i valori inseriti nei vari campi venissero memorizzati in un file di testo e mostrati come opzioni del sondaggio.

Inserisco allora questo subito dopo il ciclo for che crea i campi:

for ($i=0; $i<$opz; $i++){
                          $sondaggio = "sondaggio.txt";
                       $opzione = ("$name.$i");
                       $fp = fopen($sondaggio, "a+");
                       $fw = fwrite($fp, $opzione);
                       fclose($fp);
                       }

Il file viene scritto, ma invece dei valori che inserisco nei campi, nel file di testo mi compare sempre "Opzione.0" ecc...

Come faccio a far scrivere nel file di testo i valori che inserisco nei campi?

Grazie a tutti e scusate il post kilometrico

inviato 10 anni fa
oscar
X 0 X

Il primo frammento di codice che hai riportato prevede l'invio del numero di opzioni attraverso un form (che non hai riportato). Per prelevare i dati provenienti da questo primo form hai correttamente usalto l'array $_POST.

Adesso il problema di recuperare le opzioni del sondaggio è identico. Devi usare l'array $_POST, in particolare:

$_POST['opzione.0']  $_POST['opzione.1'] $_POST['opzione.2'] ecc.

Stai attento però che questi dati non saranno disponibili fino a quando l'utente non avrà effettuato il "submit" del post, pertanto il codice che memorizza questi dati non può essere messo appena dopo la creazione del form.

Un altro problema che hai è costituito dal fatto che a priori nell'elaborazione dei dati del secondo form non sai quante opzioni sono state create.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Si, devo nella nuova pagina recuperare attraverso $_POST['opzione1'] ecc

Il problema nasce per il fatto che il numero di pozioni è variabile e quindi non posso recuperare le opzioni una ad una ma ho bisogno di qualcosa che legga l'array e lo stampi a video.

risposto 10 anni fa
oscar
X 0 X

potresti fare un ciclo e verificare ad ogni iterazione se esiste la variabile $_POST['opzione.' . $i]

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda