Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53

    passare variabili da html a php nella stessa pagina

    ciao a tutti! spero che il seguente problema non sia già stato posto (non ne ho trovati di simili) anche perché è alquanto comica come domanda...!
    allora...
    partiamo con il presupposto che ho cominciato 2 giorni fa a scrivere qualcosetta in php...ed ora vengono fuori i primi problemi:
    nella mia pagina index.php ho scritto una porzione in html con un menù a tendina all'interno:

    <select name="scelta">
    <option value = "Scelta 1">Scelta 1</option>
    <option value = "Scelta 2">Scelta 2</option>
    <option value = "Scelta 3">Scelta 3</option>
    <option value = "Scelta 4">Scelta 4</option>
    <option value = "Scelta 5">Scelta 5</option>
    <option value = "Scelta 6">Scelta 6</option>
    <option value = "Scelta 7">Scelta 7</option>
    <option value = "Scelta 8">Scelta 8</option>
    <option value = "Scelta 9">Scelta 9</option>
    <option value = "Scelta 10">Scelta 10</option>
    </select>

    ora vorrei che, da questo menù a tendina, si potesse giustamente fare la propria scelta e, quando viene fatta, la pagina sottostante cambia, del genere: seleziono "Scelta 1" e mi scrive "è stata selezionata la prima scelta", seleziono "Scelta 2" e mi scrive "è stata selezionata la seconda scelta", e via dicendo, il tutto senza la pressione di bottoni, ma solo dell'evidenziazione dell'opzione nel menù a tendina...avevo provato con questa porzione di codice:

    <select name="scelta">
    <option value = "Scelta 1">Scelta 1</option>
    <option value = "Scelta 2">Scelta 2</option>
    <option value = "Scelta 3">Scelta 3</option>
    <option value = "Scelta 4">Scelta 4</option>
    <option value = "Scelta 5">Scelta 5</option>
    <option value = "Scelta 6">Scelta 6</option>
    <option value = "Scelta 7">Scelta 7</option>
    <option value = "Scelta 8">Scelta 8</option>
    <option value = "Scelta 9">Scelta 9</option>
    <option value = "Scelta 10">Scelta 10</option>
    </select>
    <?php
    $ciao = $_REQUEST['scelta'];
    echo $ciao;
    if ($_REQUEST['scelta']=="Scelta 1") {echo "stata selezionata scelta 1";}
    else {echo "altre scelte";}
    ?>

    ovviamente con tutte le varie intestazioni... solo che continua a rimanere in "altre scelte" anche se seleziono "Scelta 1"...!! vi prego aiutatemi...!fa parte della tesi di maturità...!!!

  2. #2
    Se vuoi non premere bottoni, nel senso che non vuoi fare il submit del form e ricaricare la pagina devi utilizzare il javascript, non il php. Oppure fare request Ajax (javascript+php).
    =======================
    http://www.abidibo.net

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53
    Originariamente inviato da abidibo
    Se vuoi non premere bottoni, nel senso che non vuoi fare il submit del form e ricaricare la pagina devi utilizzare il javascript, non il php
    aaahhh ok...allora nn tutto quel che si fa in javascript si può fare con php...! (l'idea mi era venuta in mente prendendo spunto da dei siti "prova" che avevo fatto in javascript...!).
    comunque visto che devo per forza usare i bottoni...il codice come diventa? nel senso...dopo comunque con l'uso del bottone devo passare su un'altra pagina o posso fare tutto sempre sulla stessa?

  4. #4
    dopo comunque con l'uso del bottone devo passare su un'altra pagina o posso fare tutto sempre sulla stessa?
    E' a tua discrezione, invii il form allo script indicato nell'attributo action del tag form. Tale script riceve le variabili passate tramite GET o POST a seconda del metodo che utilizzi
    Codice PHP:
    <?php
    if(isset($_POST['scelta'])) $scelta $_POST['scelta'];
    else 
    $scelta '';
    ?>
    <form action='<? echo $_SERVER['PHP_SELF']; ?>' method='post'>
    <select name="scelta">
    <?php 
    if($scelta=='Scelta 1'$selected "selected=\"selected\"";
    else 
    $selected '';
    ?>
    <option value = "Scelta 1" <?php echo $selected ?>>Scelta 1</option>
    <?php 
    if($scelta=='Scelta 2'$selected "selected=\"selected\"";
    else 
    $selected '';
    ?>
    <option value = "Scelta 2" <?php echo $selected ?>>Scelta 2</option>
    <?php 
    if($scelta=='Scelta 3'$selected "selected=\"selected\"";
    else 
    $selected '';
    ?>
    <option value = "Scelta 3" <?php echo $selected ?>>Scelta 3</option>
    </select>
    <input type="submit" value="submit" />
    </form>
    <?php
    if($scelta) echo "Come si vede dall select, è stata selezionata la scelta: ".$scelta;
    ?>
    Ti ho scritto il codice in modo semplice, ovviamente si puo' condensare un po'... comunque il form richiama la stessa pagina, cui passa il valore selezionato nella select, che viene letto ed utilizzato per settare di default cio' che si è scelto prima e per scrivere la frase finale.
    =======================
    http://www.abidibo.net

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53
    grazie infinite per la tua disponibilità, ho appena provato il codice e funziona alla grande, solo che, nella mia enorme ignoranza, avrei bisogno di qualche spiegazione se possibile...!

    Codice PHP:
    <?php
    if(isset($_POST['scelta'])) $scelta $_POST['scelta'];
    else 
    $scelta '';
    ?>
    buio totale su questo if...

    Codice PHP:
    <form action='<? echo $_SERVER['PHP_SELF']; ?>' method='post'>
    <select name="scelta">
    è il form che viene rimandato a se stesso, e fin qua nn ci son problemi...

    Codice PHP:
    <?php 
    if($scelta=='Scelta 1') [B][I][U]$selected "selected=\"selected\""; [/U][/I][U][/U][/B]  
    else 
    $selected '';
    ?>
    non ho capito molto la parte in grassetto-italic-sottolineato...mi vien da pensare ad una roba tipo il "this" su java...! per il resto penso venga semplicemente inizializzata l variabile selected a carattere vuoto no?

    Codice PHP:
    <option value = "Scelta 1" <?php echo $selected ?> > Scelta 1</option>
    viene creata la prima scelta solo che non capisco il motivo dell' "echo $selected"...come mai serve?

    Codice PHP:
    <?php 
    if($scelta=='Scelta 2'$selected "selected=\"selected\"";
    else 
    $selected '';
    ?>
    <option value = "Scelta 2" <?php echo $selected ?>>Scelta 2</option>
    <?php 
    if($scelta=='Scelta 3'$selected "selected=\"selected\"";
    else 
    $selected '';
    ?>
    <option value = "Scelta 3" <?php echo $selected ?>>Scelta 3</option>
    </select>
    stessa roba di quel che c'è sopra...!

    Codice PHP:
    <input type="submit" value="submit" />
    </
    form
    mister bottone

    Codice PHP:
    <?php
    if($scelta) echo "Come si vede dall select, è stata selezionata la scelta: ".$scelta;
    ?>
    viene stampata la scelta, ma in questo caso serve l'if? non bastava mettere l'echo? (l'if in questo caso va a vedere se la variabile "scelta" contiene valori?
    grazie mille ancora per la disponibilità!

  6. #6
    1.
    <?php
    if(isset($_POST['scelta'])) $scelta = $_POST['scelta'];
    else $scelta = '';
    ?>
    Serve ad inizializzare la variabile scelta... potresti anche solo mettere:
    Codice PHP:
    $scelta $_POST['scelta']; 
    perchè il php è molto clemente, quindi riceveresti solo ei warning o notice, cioè non errori che bloccano l'esecuzione del programma. Il fatto è che quando accedi per la prima volta al form la variabile $_POST['scelta'] non è settata, non esiste, e quindi non sta bene assegnarla a $scelta, per questo prima controllo che sia stata settata, e se è così la assegno, altrimenti setto $scelta come '', avrei anche potuto settarla come null.

    2.
    <?php
    if($scelta=='Scelta 1') $selected = "selected=\"selected\"";
    else $selected = '';
    ?>
    Questo l'ho messo per far si che quando uno fa il submit del form e ritorna alla stessa pagina veda selezionata la vode del select che aveva scelto prima, per cui per ogni voce del select controllo se $scelta è uguale a tale voce, in caso affermativo scrivo l'attributo seleted="selected" (che immagazzino prima in una variabile, cioè $selected) all'interno del tag <option>, e lo faccio proprio con:
    3.
    <option value = "Scelta 1" <?php echo $selected ?> > Scelta 1</option>
    infatti se la opzione non è quella selezionata all'invio del form avro
    <option value="Scelta 1">Scelta 1</option>
    altrimenti
    <option value="Scelta 1" selected="selected">Scelta 1</option>
    e me la ritrovo selezionata.

    4.
    <?php
    if($scelta) echo "Come si vede dall select, è stata selezionata la scelta: ".$scelta;
    ?>
    viene stampata la scelta, ma in questo caso serve l'if? non bastava mettere l'echo? (l'if in questo caso va a vedere se la variabile "scelta" contiene valori?
    Esatto, stampo la frase solamente se è stata effettivamente effettuata una scelta, altrimenti non scrivo nulla, quindi ad esempio al primo accesso alla pagina non stampo nulla visto che non si è ancora compilato il form.
    Poi uso semplicemente if($scelta) anche qui perchè il php è molto "buono" in queste cose, infatti non richiede che il controllo sia per forza un dato di tipo booleano, va bene anche se è una stringa, in questo caso stringa vuota = falso, stringa non vuota = vero.

    Ciao
    =======================
    http://www.abidibo.net

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53
    aaahhh ok! utile il fatto di inizializzare la variabile, ed ancor più utile il fatto di mantener visibile la scelta fatta...! grazie mille!!rep +!!
    EDIT: nn c'è modo di dare reputazione?

  8. #8
    Se è tutto chiaro, allora compattiamo un po' il codice:
    Codice PHP:
    <?php $scelta = (isset($_POST['scelta']))? $_POST['scelta']:''?>
    <form action='<? echo $_SERVER['PHP_SELF']; ?>' method='post'>
    <select name="scelta">
    <?php $selected = ($scelta=='Scelta 1')? "selected=\"selected\"":''?>
    <option value = "Scelta 1" <?php echo $selected ?>>Scelta 1</option>
    <?php $selected = ($scelta=='Scelta 2')? "selected=\"selected\"":''?>
    <option value = "Scelta 2" <?php echo $selected ?>>Scelta 2</option>
    <?php $selected = ($scelta=='Scelta 3')? "selected=\"selected\"":''?>
    <option value = "Scelta 3" <?php echo $selected ?>>Scelta 3</option>
    </select>
    <input type="submit" value="submit" />
    </form>
    <?php
    if($scelta) echo "Come si vede dal select, è stata selezionata la scelta: ".$scelta;
    ?>
    =======================
    http://www.abidibo.net

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53
    in un momento di tutto fare ho provato a modificare il tutto, con al posto del menù a tendina, una check box esclusiva, solo che non mi fa entrare visualizzare i due form che dovrebbero venir fuori a seconda della scelta fatta...!
    Codice PHP:
    <?php 
    if(isset($_POST['scelta'])) $scelta $_POST['scelta']; 
    else 
    $scelta ''
    ?> 
    <form action='<? echo $_SERVER['PHP_SELF']; ?>' method='post'> 

    <?php 
    if($scelta=='LogIn'$selected "selected=\"selected\""
    else 
    $selected ''
    ?>

    LogIn <input type="radio" name="colore" value="LogIn" <?php echo $selected ?>

    <?php 
    if($scelta=='Registrazione'$selected "selected=\"selected\""
    else 
    $selected ''
    ?> 

    Registrazione <input type="radio" name="colore" value="Registrazione" <?php echo $selected ?>
    </select> 
    <input type="submit" value="Conferma" /> 
    </form> 
    <?php 
    if($scelta == "Registrazione")
    {
    ?> 

    <HTML>

    <FORM ACTION="registrazione.php" METHOD="POST"> 
            Nome: <INPUT TYPE="TEXT" NAME="nome" VALUE="">
            Cognome: <INPUT TYPE="TEXT" NAME="cognome" VALUE="">
            UserName: <INPUT TYPE="TEXT" NAME="username" VALUE="">
            PassWord: <INPUT TYPE="PASSWORD" NAME="password" VALUE="">
            Ripeti PassWord: <INPUT TYPE="PASSWORD" NAME="ripetiPass" VALUE="">
            Numero di cellulare: <INPUT TYPE="TEXT" NAME="numeroCell" VALUE="">        

        <INPUT TYPE="SUBMIT" VALUE="Registrati">
      </FORM>
    </HTML>
    <?php
    }
    elseif (
    $scelta == "LogIn") {
    ?>
    Loggati:
        <FORM ACTION="login.php" METHOD="POST"> 
            UserName: <INPUT TYPE="TEXT" NAME="username" VALUE="">
            PassWord: <INPUT TYPE="PASSWORD" NAME="password" VALUE="">     
        <INPUT TYPE="SUBMIT" VALUE="LogIn">
      </FORM>
    <?php
    }
    ?>

  10. #10
    stai confrontando $_POST['scelta'] con la variabile che si chiama 'colore'.
    Codice PHP:
    <?php
    if(isset($_POST['colore'])) $scelta $_POST['colore'];
    else 
    $scelta '';
    ?>
    =======================
    http://www.abidibo.net

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.