• User Attivo

    Se premi un pulsante, apri modulo con altri form

    Salve,
    Scusate il titolo ma è difficile spiegare bene il problema. Praticamente al premere del pulsante submit 'invio02', mi apre un testo contenuto nella variabile $variazione02, che include anche un nuovo pulsante submit 'invio03'.
    Ecco il codice:
    [PHP]
    <form id="form1" name="form1" method="post" action="">
    <input type="submit" name="invio02" value="Aggiungi seconda variazione" />
    </form>
    <?
    // variazione 02

            $variazione02="<FORM METHOD=\"POST\" ACTION=\"\"> 
                        22222 
                        <!-- Pulsante che abilita la variazione 03 --> 
                        <form id=\"form1\" name=\"form1\" method=\"post\" action=\"\">  
                          <input type=\"submit\" name=\"invio03\" value=\"Aggiungi terza variazione\" />  
                        </form>"                        ; 
                         
            if(isset($_POST['invio02'])) 
            { 
            echo $variazione02; 
            }  
    

    // variazione 03

            $variazione03="<FORM METHOD=\"POST\" ACTION=\"\"> 
                        33333 
                        <!-- Pulsante che abilita la variazione 04 --> 
                        <form id=\"form1\" name=\"form1\" method=\"post\" action=\"\">  
                          <input type=\"submit\" name=\"invio04\" value=\"Aggiungi quarta variazione\" />  
                        </form>"                        ; 
                         
            if(isset($_POST['invio03'])) 
            { 
            echo $variazione03; 
            }  
    

    // variazione 04

            $variazione04="<FORM METHOD=\"POST\" ACTION=\"\"> 
                        44444 
                        <!-- Chiudo la variazione 04 --> 
                        <!-- Pulsante che abilita la variazione 05 --> 
                        <form id=\"form1\" name=\"form1\" method=\"post\" action=\"\">  
                          <input type=\"submit\" name=\"invio05\" value=\"Aggiungi quinta variazione\" />  
                        </form>"                        ; 
                         
            if(isset($_POST['invio04'])) 
            { 
            echo $variazione04; 
            }  
    

    // variazione 05

            $variazione05="<FORM METHOD=\"POST\" ACTION=\"\"> 
                        55555 
                        <!-- Pulsante che abilita la variazione 06 --> 
                        <form id=\"form1\" name=\"form1\" method=\"post\" action=\"\">  
                          <input type=\"submit\" name=\"invio06\" value=\"Aggiungi sesta variazione\" />  
                        </form>"                        ; 
                         
            if(isset($_POST['invio05'])) 
            { 
            echo $variazione05; 
            }  
    

    // variazione 06

            $variazione06="<FORM METHOD=\"POST\" ACTION=\"\"> 
                        666666 
                        <!-- Pulsante che abilita la variazione 07 --> 
                        <form id=\"form1\" name=\"form1\" method=\"post\" action=\"\">  
                          <input type=\"submit\" name=\"invio07\" value=\"Aggiungi settima variazione\" />  
                        </form>"                        ; 
                         
            if(isset($_POST['invio06'])) 
            { 
            echo $variazione06; 
            }  
    

    // variazione 07

            $variazione07="<FORM METHOD=\"POST\" ACTION=\"\"> 
                        77777 
                        <!-- Pulsante che abilita la variazione 08 --> 
                        <form id=\"form1\" name=\"form1\" method=\"post\" action=\"\">  
                          <input type=\"submit\" name=\"invio08\" value=\"Aggiungi ottava variazione\" />  
                        </form>"                        ; 
                         
            if(isset($_POST['invio07'])) 
            { 
            echo $variazione07; 
            }  
    

    // variazione 08

            $variazione08="<FORM METHOD=\"POST\" ACTION=\"\"> 
                        8888 
                        <!-- Chiudo la variazione 08 -->"; 
                         
            if(isset($_POST['invio08'])) 
            { 
            echo $variazione08; 
            }  
    

    ?>
    [/PHP]
    Il mio problema è che il metodo POST non specifica di volta in volta quale pulsante submit ho premuto.


  • ModSenior

    Ciao nofcfro e benvenuto nel forum GT,
    quale submit è premuto è specificato dal name. Non capisco quale sia il problema.


  • User Attivo

    Forse con una immagine mi spiego meglio ^^
    imageshack.us/photo/my-images/191/carcospulsanti.jpg/
    Col metodo POST inserito così mi seleziona tutti i submit della pagina!


  • ModSenior

    Personalmente avrei utilizzato un altro sistema più leggibile:
    [php]
    <?php
    $variazione[1] = "
    <form id="form1" name="form1" method="post" action="">
    <input type="submit" name="invio03" value="Aggiungi seconda variazione" />
    <input type="hidden" name="variazione" value="2">
    </form>";

    $variazione[2] = "
    <form id="form1" name="form1" method="post" action="">
    <input type="submit" name="invio03" value="Aggiungi terza variazione" />
    <input type="hidden" name="variazione" value="3">
    </form>";

    $variazione[3] = "
    <form id="form1" name="form1" method="post" action="">
    <input type="submit" name="invio03" value="Aggiungi quarta variazione" />
    <input type="hidden" name="variazione" value="4">
    </form>";

    if(!isset($_POST['variazione']))
    echo $variazione[1];
    elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
    echo $variazione[$_POST['variazione']];
    [/php]


  • User Attivo

    Mitico!!!! E' proprio lo schema che cercavo!!! Semplice, chiaro ma soprattutto efficace!! 😉

    Solo due domande però:
    [PHP]<?php
    $variazione[1] = "
    ciao<form id="form1" name="form1" method="post" action="">
    <input type="submit" name="invio03" value="Aggiungi seconda variazione" />
    <input type="hidden" name="variazione" value="2">
    </form>";

    $variazione[2] = "
    mamma<form id="form1" name="form1" method="post" action="">
    <input type="submit" name="invio03" value="Aggiungi terza variazione" />
    <input type="hidden" name="variazione" value="3">
    </form>";

    $variazione[3] = "
    guarda<form id="form1" name="form1" method="post" action="">
    <input type="submit" name="invio03" value="Aggiungi quarta variazione" />
    <input type="hidden" name="variazione" value="4">
    </form>";

    if(!isset($_POST['variazione']))
    echo $variazione[1];
    elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
    echo $variazione[$_POST['variazione']];[/PHP]

    #1 Aggiungendo ad ogni variazione le parole 'ciao', 'mamma', 'guarda', al premere del pulsante scompare la prima parola per la seconda e al nuovo premere scompare la seconda parola per la terza. Come posso fare in modo che ogni volta che premo il pulsante rimane anche la parola precedente?

    #2 Come posso creare un pulsante invece di "reset", cioè che mi tolga solo l'ultima aggiunta fatta? Es. ho composto 'ciao', 'mamma',, 'guarda' e voglio togliere solo 'guarda', lasciando così solamente le prime due parole?

    Grazie ancora :sun:


  • ModSenior

    Allora per la prima domanda, puoi usare la variabile $_POST del campo di input che aggiungi. Quindi modifichi ad esempio cosi:
    [php]
    $testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';
    $variazione[1] = "
    mamma<form id="form1" name="form1" method="post" action="">
    <input type="text" name="testobase" value="$testo_base" />
    <input type="submit" name="invio03" value="Aggiungi seconda variazione" />
    <input type="hidden" name="variazione" value="2">
    </form>";
    $variazione[2] = "
    mamma<form id="form1" name="form1" method="post" action="">
    <input type="text" name="testobase" value="$testo_base" />
    <input type="submit" name="invio03" value="Aggiungi terza variazione" />
    <input type="hidden" name="variazione" value="3">
    </form>";
    [/php]

    Per la seconda:
    Ti basta modificare il campo di input nascosto rimandandolo indietro invece che avanti.


  • User Attivo

    Scusa ancora la domanda e grazie per la pazienza..
    ma non riesco a capire: aggiungo nel form la riga
    [PHP]<input type="text" name="testobase" value="$testo_base" />[/PHP]
    mentre
    [PHP]$testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';; [/PHP]
    lo devo inserire sotto sotto il ciclo elseif ? è quest'ultima riga di codice che non capisco 😞


  • User Attivo

    Mi dà sempre il solito problema: si susseguono i pulsanti senza rimanere 😞
    [PHP]<?php
    $testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';

    $variazione[1] = "
    ciao<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="testobase" value="$testo_base" />
    <input type="submit" value="Aggiungi seconda variazione" />
    <input type="hidden" name="variazione" value="2">
    </form>";
    $variazione[2] = "
    mamma<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="testobase" value="$testo_base" />
    <input type="submit" value="Aggiungi terza variazione" />
    <input type="hidden" name="variazione" value="3">
    </form>";
    $variazione[3] = "
    guarda<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="testobase" value="$testo_base" />
    <input type="submit" value="Aggiungi quarta variazione" />
    <input type="hidden" name="variazione" value="4">
    </form>";
    $variazione[4] = "
    come<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="testobase" value="$testo_base" />
    <input type="submit" value="Aggiungi quinta variazione" />
    <input type="hidden" name="variazione" value="5">
    </form>";
    $variazione[5] = "mi diverto";

    if(!isset($_POST['variazione']))
    echo $variazione[1];
    elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
    echo $variazione[$_POST['variazione']];[/PHP]


  • ModSenior

    È corretto come hai scritto nel secondo post.
    Ma tu non volevi che se mostra il form 3, il form 1 e 2 non erano presenti? O ho capito il contrario di cosa volevi?


  • User Attivo

    Ciao! Io vorrei che rimangano ogni volta quelli già cliccati!
    Se mostra il form 3, il form 1 e 2 DEVONO erano presenti 🙂


  • ModSenior

    Avevo capito male, allora devi cambiare:
    [php]
    elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
    echo $variazione[$_POST['variazione']];
    [/php]In:
    [php]
    elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
    for($i=1; $i<=$_POST['variazione']; $i++)
    echo $variazione*;
    [/php]


  • User Attivo

    Esattamente così!! 🙂 :bravo:
    Se aggiungo un campo di troppo posso mettere un pulsante tipo "Elimina ultimo campo"? Come si può fare?
    Un'ultimissima cosa, ma solo per curiosità: ogni volta che clicco su aggiungi, mi rimanda a inizio pagina, c'è un' "ancora" che mi fa rimanere all'altezza in cui ho cliccato aggiungi?

    Davvero GRAZIE 🙂


  • ModSenior

    Dovresti utilizzare un database per salvare gli inserimenti effettuati altrimenti non sei in grado di salvare cosa è stato inserito.
    Per eliminare l'ultimo campo devi decrementare $_POST['variazione'] nel form in cui metti torna indietro.


  • User Attivo

    [PHP]<?php
    $testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';

    $variazione[1] = "
    ciao<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="decrementa" value="2" />
    <input type="submit" value="Elimina seconda variazione" /> >
    <input type="submit" value="Aggiungi seconda variazione" />
    <input type="hidden" name="variazione" value="2">
    </form>";
    $variazione[2] = "
    mamma<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="decrementa" value="3" />
    <input type="submit" value="Elimina terza variazione" /> >
    <input type="submit" value="Aggiungi terza variazione" />
    <input type="hidden" name="variazione" value="3">
    </form>";
    $variazione[3] = "
    guarda<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="decrementa" value="4" />
    <input type="submit" value="Elimina quarta variazione" /> >
    <input type="submit" value="Aggiungi quarta variazione" />
    <input type="hidden" name="variazione" value="4">
    </form>";
    $variazione[4] = "
    come<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="decrementa" value="5" />
    <input type="submit" value="Elimina quinta variazione" /> >
    <input type="submit" value="Aggiungi quinta variazione" />
    <input type="hidden" name="variazione" value="5">
    </form>";
    $variazione[5] = "mi diverto";

    if(!isset($_POST['variazione']))
    echo $variazione[1];

    elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
    for($i=1; $i<=$_POST['variazione']; $i++)
    echo $variazione*;

    elseif(is_numeric($_POST['decrementa']) && isset($variazione[$_POST['decrementa']]))
    for($i=1; $i>=$_POST['decrementa']; $i++)
    echo $variazione*;
    ?>[/PHP]

    sia se provo:
    [PHP]for($i=1; $i>=$_POST['decrementa']; $i++) [/PHP]
    sia
    [PHP]for($i=1; $i<=$_POST['decrementa']; $i--) [/PHP]

    non mi toglie l'ultima aggiunta 😞


  • ModSenior

    Non cosi, dovresti fare una cosa del genere:
    [php]
    <?php
    $testo_base = isset($_POST['testobase']) ? $_POST['testobase'] : '';

    $variazione[1] = "
    ciao<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="testobase" value="$testo_base" />
    <input type="submit" value="Aggiungi seconda variazione" />
    <input type="hidden" name="variazione" value="2">
    </form>";
    $variazione[2] = "
    mamma<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="testobase" value="$testo_base" />
    <input type="submit" value="Aggiungi terza variazione" />
    <input type="hidden" name="variazione" value="3">
    </form>";
    $variazione[3] = "
    guarda<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="testobase" value="$testo_base" />
    <input type="submit" value="Aggiungi quarta variazione" />
    <input type="hidden" name="variazione" value="4">
    </form>";
    $variazione[4] = "
    come<form id="form1" name="form1" method="post" action="">
    <input type="hidden" name="testobase" value="$testo_base" />
    <input type="submit" value="Aggiungi quinta variazione" />
    <input type="hidden" name="variazione" value="5">
    </form>";
    $variazione[5] = "mi diverto";

    if(!isset($_POST['variazione']))
    echo $variazione[1];
    elseif(is_numeric($_POST['variazione']) && isset($variazione[$_POST['variazione']]))
    for($i=1; $i<=$_POST['variazione']; $i++)
    echo $variazione*;

    echo "<form id="form1" name="form1" method="post" action="">
    <input type="submit" value="Torna indietro" />
    <input type="hidden" name="variazione" value="".($_POST['variazione']-1)."">
    </form>";
    [/php]


  • User Attivo

    Grazie DAVVERO 🙂