Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12

    Sostituire un input submit quando premuto

    Buongiorno ragazzi,

    sto provando da ieri a creare una pagina con dei campi da utilizzare per una ricerca. Vorrei che alla pressione di un tasto che chiamo "form", i campi selezionabili cambino. A fare questo ci riesco, è che vorrei che il tasto, una volta premuto, cambiasse nome, ovvero si sostituisse al primo, e ripremendolo mi facesse tornare alla situazione iniziale. Vi faccio un Esempio:
    Ho la pagina con tre campi "input text" e il tasto Form Completo:
    Nome: ....... Tasto FORM COMPLETO
    Cognome: ......
    Indirizzo: .....

    Adesso vorrei che quando premo il tasto FORM COMPLETO, i campi e il tasto stesso cambiassero, senza cambiare pagina php, in questo modo:
    Nome: ........ Tasto FORM SEMPLICE
    Cognome: .......
    Indirizzo: ....
    Data di nascita: ......
    Via: .......
    Ecc...

    Ora vorrei che premendo il tasto FORM SEMPLICE, la visualizzazione tornasse come in partenza, con solo i campi Nome e Cognome.

    Per fare ciò, ho scritto il seguente codice:


    <!--creo la tabella-->
    <table width="80%" border="0">
    <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
    <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
    <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
    <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
    <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
    <thead>
    <tr>
    <td>Nome</b></td>
    <td><input type="text"></td>
    <td>Cognome</b></td>
    <td><input type="text"></td>
    <td><form target="_self" action="" method="POST">
    <!--uso self per non caricare altri frame, ma se stesso-->
    <?php
    if (isset($_POST['form']) and $_POST['form'] == "Form semplice"){
    echo '<input type="submit" value="Form semplice" name="form">'; }
    else{
    echo '<input type="submit" value="Form completo" name="form">'; }
    ?>
    </form></td> </tr>
    <tr>
    <td>Indirizzo</b></td>
    <td><input type="text"></td>
    <?php
    //se premo il tasto FORM COMPLETO
    if(isset($_POST['form'])) {
    $_POST['form'] = "Form semplice";
    //stampo per vedere se effettivamente cambia valore
    echo
    $_POST['form'];
    //Creo un nuovo input in aggiunta, Data di nascita
    echo '<td>Data di nascita</b></td>
    <td><input type="text"></td>'
    ; } ?>
    </tr>

    Il mio problema, non è tanto a far apparire i campi del Form Completo, è il fatto che una volta premuto il tasto, mi compaiono i nuovi campi, ma ripremendolo non accade nulla. Dove sbaglio o come potrei implementare? Possibilmente senza usare Javascript.Grazie dell'aiuto!
    Ultima modifica di Biju19; 31-07-2014 a 09:36

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Fai due blocchi, la prima tabella (che sarà di default) metti quella semplice sotto quella completa le due tabelle saranno racchiuse in un if/else e cambia nome hai due tasti.



    P.S. Comunque la soluzione migliore resta js per fare questo tipo d'operazioni
    P.S.S Hai considerato che il form andrà inviato?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Codice PHP:
    <!--creo la tabella-->
    <table width="80%" border="0">
    <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
    <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
    <colgroup bgcolor="#FFFFFF" width="45%" align="right"></colgroup>
    <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
    <colgroup bgcolor="#FFFFFF" width="15%" align="right"></colgroup>
    <thead>
    <tr>
    <td>Nome</b></td>
    <td><input type="text"></td>
    <td>Cognome</b></td>
    <td><input type="text"></td>
    <td><form target="_self" action="" method="POST">
    <!--uso self per non caricare altri frame, ma se stesso-->
    <?php
    if (!isset($_POST['form']) or $_POST['form'] == "Form semplice"){
        echo 
    '<input type="submit" value="Form completo" name="form">';
    } else {
        echo 
    '<input type="submit" value="Form semplice" name="form">';
    }
    ?>
    </form></td> </tr>
    <tr>
    <td>Indirizzo</b></td>
    <td><input type="text"></td>
    <?php
    //se premo il tasto FORM COMPLETO
    if(isset($_POST['form']) and $_POST['form'] == "Form completo") {
        
    //Creo un nuovo input in aggiunta, Data di nascita
        
    echo '<td>Data di nascita</b></td>
        <td><input type="text"></td>'
    ;
    }
    ?>
    </tr>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    12
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Fai due blocchi, la prima tabella (che sarà di default) metti quella semplice sotto quella completa le due tabelle saranno racchiuse in un if/else e cambia nome hai due tasti.



    P.S. Comunque la soluzione migliore resta js per fare questo tipo d'operazioni
    P.S.S Hai considerato che il form andrà inviato?
    Grazie cavicchiandrea, come potrei risolvere con Javascript? Perché il mio problema è che una volta entrato nell'IF non mi ci torna per fare il controllo. Il codice Javasciprt come potrebbe essre?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.