Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Come passare il valore selezionato in 2 pagine diverse ?

    Ho un solo select che sarebbe una banale tendina.

    Per passare il valore alla prossima pagina PHP includo la tendina in un form in quale possiede un bottone submit.

    e fino a qui niente di strano e non c'è neanche bisogno di uno script.


    Ma succede che i bottoni submit sono 2 e ambedue i bottoni devono passare il medesimo valore che è contenuto in un unica tendina, quindi nella medesima pagina PHP, sono 2 anche i form.

    Ma la tendina deve essere per forza una sola.

    e come si risolve questo problema ?

    In altre parole, il sistema mi costringe a mostrare 2 tendine altrimenti funziona solo un bottone

  2. #2
    Fai un piccolo controllo in javascript, dove nei due eventi submit prendi il valore della tendina.

    codice:
    <form onsubmit="funzioneMandaParametri(1)"></form>
    <form onsubmit="funzioneMandaParametri(2)"></form>
    
    
    function funzioneMandaParametri(n) {
    valore = document.getElementById(idTendina).value;
    
    if(n == 1) {
    // post alla prima pagina
    } else {
    // post alla seconda pagina
    }
    
    return false;
    }

  3. #3
    non ho capito bene

    codice:
    echo "<form  method=post action=\"pagina1.php\">";
    echo "<select name=\"latendina\"  >";
    echo "<OPTION>A</OPTION>";
    echo "<OPTION>B</OPTION>";
    echo "<OPTION>C</OPTION>";
    echo "<OPTION>D</OPTION>";
    echo "<OPTION>E</OPTION>";
    echo "<OPTION>F</OPTION>";
    echo "</select>";
    echo "<input type=submit name=\"pagina1\" value=\"vai alla pagina 1\">";
    echo "</form>";
    
    
    echo "<form  method=post action=\"pagina2.php\">";
    echo "<select name=\"latendina2\"  >";
    echo "<OPTION>A</OPTION>";
    echo "<OPTION>B</OPTION>";
    echo "<OPTION>C</OPTION>";
    echo "<OPTION>D</OPTION>";
    echo "<OPTION>E</OPTION>";
    echo "<OPTION>F</OPTION>";
    echo "</select>";
    echo "<input type=submit name=\"pagina2\" value=\"vai alla pagina 2\">";
    echo "</form>";
    Purtroppo come si vede dal codice, le tendine sono 2, ma siccome i valore sono identici, allora è da stupidi mettere 2 tendine quando la logica impone che ne basterebbe solo una.

  4. #4
    Ah ok, capito.

    La mia idea era che in una funzione js, leggevi il valore della tendina e poi (sempre con js) facevi tu la POST del parametro alla pagina php (togliendo quindi l'action al form)
    In questo modo puoi gestirti i due eventi onsubmit con javascript in modo diverso.


    Se no ho un'altra idea.
    Crea una funzione javascript che, all'evento change della tendina, setti il valore di un input hidden (nascosto) al valore della tendina.
    codice:
    <input type="hidden" value="" name="" />
    Il form1 ha la tendina, il 2 il valore nascosto.

    Il giro sarebbe:
    - l'utente sceglie B con la tendina
    - La funzione javascript setta l'input hidden (nel form 2) uguale a B
    - Se fa la submit con la form 1, manda il valore della tendina.
    - Se fa la submit con la form 2, manda il valore dell'input nascosto (che poi è sempre B)

    Non è il massimo della pulizia ma dovrebbe funzionare.

  5. #5
    NON FUNZIONA NIENTE

    codice della pagina (index.php)
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
    
    <head>
    <title> index </title>
    
    <SCRIPT type="text/javascript">
     function aggiornaHidden(tendina){
      var f = document.frm;
      f.un_valore.value = tendina.options[tendina.selectedIndex].value;
      f.un_testo.value = tendina.options[tendina.selectedIndex].text;
     }
    </SCRIPT>
    
    </head>
    
    <body bgcolor="#ccccee" text="#000000" >
    <center>
    
    <?php
    
    
    echo "
    
    
    
    
    
    ";
    
    echo "<form  method=post action=\"pagina1.php\">";
    echo "<select name=\"latendina\" onchange=\"aggiornaHidden(this)\" >";
    echo "<OPTION>A</OPTION>";
    echo "<OPTION>B</OPTION>";
    echo "<OPTION>C</OPTION>";
    echo "<OPTION>D</OPTION>";
    echo "<OPTION>E</OPTION>";
    echo "<OPTION>F</OPTION>";
    echo "</select>
    ";
    echo "<input type=submit name=\"pagina1\" value=\"vai alla pagina 1\">";
    echo "</form>
    
    
    
    ";
    
    
    
    echo "<form  method=post action=\"pagina2.php\">";
    //echo "<select name=\"latendina2\"  >";
    //echo "<OPTION>A</OPTION>";
    //echo "<OPTION>B</OPTION>";
    //echo "<OPTION>C</OPTION>";
    //echo "<OPTION>D</OPTION>";
    //echo "<OPTION>E</OPTION>";
    //echo "<OPTION>F</OPTION>";
    //echo "</select>
    ";
    
    
    echo "<INPUT TYPE=HIDDEN NAME=\"un_valore\" >";
    echo "<INPUT TYPE=HIDDEN NAME=\"un_testo\" >";
    
    echo "<input type=submit name=\"pagina2\" value=\"vai alla pagina 2\">";
    echo "</form>
    
    
    
    ";
    
    ?>
    
    </center>
    </body>
    </html>



    codice della pagina (pagina1.php)
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
    
    <head>
    <title> pagina 1 </title>
    </head>
    
    <body bgcolor="#ccccee" text="#000000" >
    <center>
    
    <?php
    
    echo "
    
    
    
    
    
    ";
    
    
    
    if (empty($_POST["latendina"])) {
        $latendina="";
    }else{
        $latendina=$_POST["latendina"];
    }
    
    echo "<font face=\"Arial\" size=\"6\">";
    echo "Questa &#232; la pagina 1 
    
    
    ";
    echo "valore passato = ",$latendina,"
    ";
    
    echo "</font>";
    
    ?>
    
    </center>
    </body>
    </html>



    codice della pagina (pagina2.php)
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
    
    <head>
    <title> pagina 2 </title>
    </head>
    
    <body bgcolor="#ccccee" text="#000000" >
    <center>
    
    <?php
    
    echo "
    
    
    
    
    
    ";
    
    
    
    if (empty($_POST["un_valore"])) {
        $un_valore="";
    }else{
        $un_valore=$_POST["un_valore"];
    }
    
    if (empty($_POST[""])) {
        $un_testo="";
    }else{
        $un_testo=$_POST["un_testo"];
    }
    
    echo "<font face=\"Arial\" size=\"6\">";
    echo "Questa &#232; la pagina 2 
    
    
    ";
    echo "un_valore = ",$un_valore,"
    ";
    echo "un_testo = ",$un_testo,"
    "; //NON FUNZIONA !
    echo "</font>";
    
    ?>
    
    </center>
    </body>
    </html>

  6. #6
    fai un console.log() nella funziona della tendina, per vedere se il valore lo salva.
    Poi due cose:

    1. Usa document.getElementById('idTendina').value per il valore della tendina (così non passi this);
    2. Usa document.getElementById('idHidden').value = valore, per cambiare valore
    3. controlla con la console se l'hidden viene cambiato correttamente, e dopo testa il submit.

    Ah un'altra cosa, scritta così non è cross-browser. A ogni <option> devi associarci un value, altrimenti IE non lo legge.
    codice:
    <option value="A">A</option>

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.