Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Gestire form con più variabili

    Ciao, sto scrivendo uno script per un questionario, domanda, risposte, domanda risposte. Ho fatto lo script che visualizza le domande e per ogni domanda le possibili risposte, chiuse. Ora, come posso gestire un form che mi invia queste informazioni ad un'altra pagina per inserire le risposte ad ogni domanda nel database? So farlo per una sola ma non per enne, anche perchè sono stampate dinamicamente, e quindi non so neanche quante possono essere.

    Dite dite

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Mettiamo che le risposte hanno questo formato nell'html
    Codice PHP:
    <input type="text" name="risposta1">
    <
    input type="text" name="risposta2">
    eccetera 
    Essendo create dinamicamente puoi fare tranquillamente in modo che abbiano questo nome

    A questo punto nel programma fai puoi prendere tutte le risposte in questo modo (considerando il form inviato con POST)
    Codice PHP:
    $risposte = array();
    foreach(
    $_POST as $key=>$value)
    {
      if(
    strpos($key,"risposta")!==false)
        
    $risposte[] = $value;

    L'array $risposte contiene ora tutte le risposte
    L'istruzione di if all'interno del ciclo serve per prendere solo quei campi ed ignorare eventuali altri campi che hanno altri scopi
    Se sei sicuro che c'è solo un altro elemento nel form (il pulsante invia) che ha il parametro name="invia" puoi sostituire quella istruzione con
    if($key!="invia")

  3. #3
    Grazie. E poi come faccio ad associare le risposte alla domanda relativa? e come poi ad inserirle nel db? Faccio una query per ogni domanda o secondo te ci può essere un modo diverso?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Le domande come le identifichi? con un id?
    Allora quando carichi dinamicamente i campi per le risposte, il nome del campo fai in modo che sia
    risposta_$iddomanda_

    così puoi recuperare l'id della risposta dal $key (con un preg_match o con i substring)
    (dovrai cambiare l'istruzione
    $risposte[] = $value;
    in
    $risposte[$key] = $value;

    Inserire nel db:
    esiste l'istruzione insert estesa
    una cosa tipo

    INSRET INTO TABELLA
    VALUES
    (a,b,c);
    (d,e,f);
    ...

    E così via, con un solo insert inserisci tutto

  5. #5
    Originariamente inviato da Leilond
    Allora quando carichi dinamicamente i campi per le risposte, il nome del campo fai in modo che sia
    risposta_$iddomanda_

    così puoi recuperare l'id della risposta dal $key (con un preg_match o con i substring)
    (dovrai cambiare l'istruzione
    $risposte[] = $value;
    in
    $risposte[$key] = $value;
    Come si fa a dividere dinamicamente domanda e risposta? avendo tipo domanda52_risposta12, come faccio a tirarmi fuori 52 e 12? Ancora grazie.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Originariamente inviato da spettinato
    Come si fa a dividere dinamicamente domanda e risposta? avendo tipo domanda52_risposta12, come faccio a tirarmi fuori 52 e 12? Ancora grazie.
    Queste tre funzioni fanno al caso tuo

    Scegli se usare queste due in coppia
    http://it.php.net/manual/it/function.strpos.php
    http://it.php.net/manual/it/function.substr.php

    O questa da sola
    http://it.php.net/manual/it/function.preg-match.php

  7. #7
    Veramente grazie
    Ora provo a fare tutto. Grazie ancora.

  8. #8
    Ancora un problema. Siccome ho usato i radio button, non ho chiuso qualcosa, per cui mi esce che se scelgo una risposta ad una domanda, non posso scegliere altre risposte di altre domande.
    Incollo l'html che ne esce così è chiaro che caspita ho scritto...

    <html>
    <head>
    </head>
    <body>
    <form action="elabora.php" method="post" name="questionario">
    <table width="431" border="1" cellspacing="1" cellpadding="1" align="center">
    <caption align="top">Questionario</caption>

    <tr><td bgcolor=#CCCCCC colspan=6><font size=5><center> questionario1 </center></font></td></tr><tr><td bgcolor=#F9EAE6 colspan=6> domanda1</td></tr><tr><td colspan=6><input name="risposta" type="radio" value="domanda1_risposta1"> si</td></tr><tr><td colspan=6><input name="risposta" type="radio" value="domanda1_risposta2"> no</td></tr><tr><td colspan=6><input name="risposta" type="radio" value="domanda1_risposta3"> forse</td></tr><tr><td bgcolor=#F9EAE6 colspan=6> domanda2</td></tr><tr><td colspan=6><input name="risposta" type="radio" value="domanda2_risposta1"> seeeee</td></tr><tr><td colspan=6><input name="risposta" type="radio" value="domanda2_risposta2"> naaaaaaaa</td></tr><tr><td colspan=6><input name="risposta" type="radio" value="domanda2_risposta3"> bhòòòòò</td></tr> <tr><td colspan="4"></td><td width="45" colspan="1"><input name="salva" type="submit" value="salva"></td><td width="62" colspan="1"><input name="cancella" type="reset" value="cancella"></td></tr>

    </table>
    </form>
    </body>

    </html>
    Grazie.

  9. #9
    Questa cosa non me la spiego. Come funziona? bisogna inserire forum multipli? e poi come fa un unico pulsante invia a salvare tutto? funzionerebbe così? Help

  10. #10
    Risolto.

    <tr><td colspan=6><input name="risposta2" type="radio" value="domanda2_risposta2"> bhòòòòò</td></tr>
    Diventa:
    <tr><td colspan=6><input name="risposta(dipendedalciclo)" type="radio" value="domanda2_risposta2"> bhòòòòò</td></tr>
    E tutto funziona. Grazie a tutti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.