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

    controllo su campo solo se checkbox spuntato

    Ciao a tutti,

    devo fare in modo che se l'utente spunta la voce quotazione allora i controlli sulle due voci successive (prodotti e quantità) diventa obbligatoria. Sto usando questa pagina dei controlli e mi trovo bene ma non so come integrare ora questa parte...

    Codice PHP:
    <?php
    define
    ("_destinatario","tua@email");
    define("errore_oggetto_predefinito","Non hai inserito un oggetto!");
    define("errore_nome_predefinito","Non hai inserito il tuo nome!");
    define("errore_email_predefinito","L'indirizzo email che hai inserito non è corretto!");
    define("errore_commenti_predefinito","Il messaggio è vuoto!");
    define("segnaposto_oggetto","Inserisci un oggetto");
    define("segnaposto_nome","Inserisci il tuo nome");
    define("segnaposto_email","Inserisci la tua email");
    define("segnaposto_commenti","Inserisci il tuo commento");
    define("segnaposto_telefono","Inserisci il tuo numero di telefono");
    function 
    generaModulo($oggetto=segnaposto_oggetto,$nome=segnaposto_nome,$email=segnaposto_email,$commenti=segnaposto_commenti,
    $telefono=segnaposto_telefono,$errore_oggetto="",$errore_nome="",$errore_email="",$errore_commenti=""){
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <fieldset>
    <legend>Dati generali</legend>
    <label for="oggetto">Oggetto</label>


    <input name="oggetto" id="oggetto" value="<?php echo $oggetto?>" size="30" />
    <?php if (!$errore_oggetto=="") { echo"<span>[b]$errore_oggetto[/b]</span>";} else { echo"<span>*</span>";}?>


    <label for="nome">Nome</label>


    <input name="nome" id="nome" value="<?php echo $nome?>" size="30" />
    <?php if (!$errore_nome=="") { echo"<span>[b]$errore_nome[/b]</span>";} else { echo"<span>*</span>";}?>


    <label for="mail">La tua e-mail</label>


    <input name="email" id="mail" value="<?php echo $email?>" size="30" />
    <?php if (!$errore_email=="") { echo"<span>[b]$errore_email[/b]</span>";} else { echo"<span>*</span>";}?>


    <label for="commenti">Richieste e/o commenti</label>


    <textarea name="commenti" id="commenti" cols="30" rows="8" ><?php echo $commenti?></textarea>
    <?php if (!$errore_commenti=="") { echo"<span>[b]$errore_commenti[/b]</span>";} else { echo"<span>*</span>";}?>


    <label for="telefono">Il tuo telefono (facoltativo)</label>


    <input name="telefono" id="telefono" value="<?php echo $telefono?>" size="30" />

    </fieldset>

    <fieldset>
        <legend>Quotazioni prodotti</legend>

    <label for="quotazione">Quotazione</label><input type="checkbox" id="" />



    <label for="prodotti">Prodotto</label>


    <input name="prodotti" id="prodotti" value="<?php echo $prodotti?>" size="30" />
    <?php if (!$errore_prodotti=="") { echo"<span>[b]$errore_prodotti[/b]</span>";} else { echo"<span>*</span>";}?>


    <label for="quantita">Quantità</label>


    <input name="quantita" id="quantita" value="<?php echo $quantita?>" size="30" />
    <?php if (!$errore_quantita=="") { echo"<span>[b]$errore_quantita[/b]</span>";} else { echo"<span>*</span>";}?>




    <input type="submit" value="Invia il modulo" name="bottone_invio" />

    </fieldset>

    </form>
    <?php
    } function isValidEmail($email){ $pattern "^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$";

    if (
    eregi($pattern$email)){
    return 
    true;
    }
    else {
    return 
    false;
    }
    }

    function 
    controlla($stringa,$lunghezza){
    if (
    strlen($stringa)<$lunghezza){
    return 
    true;
    }
    else {
    return 
    false;
    }
    }

    ?>
    <!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" lang="it" xml:lang="eng" dir="ltr">
    <head>
    <title>Esempio di modulo con controllo dei campi</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
    <?php if (!isset($_POST['bottone_invio'])) {
    generaModulo();
    } else {
    $oggetto = isset($_POST['oggetto']) ? $_POST['oggetto'] : "";
    $nome = isset($_POST['nome']) ? $_POST['nome'] : "";
    $email = isset($_POST['email']) ? $_POST['email'] : "";
    $commenti = isset($_POST['commenti']) ? $_POST['commenti'] : "";
    $telefono = isset($_POST['telefono']) ? $_POST['telefono'] : "";

    $error false;
    $errore_oggetto '';
    $errore_nome '';
    $errore_email '';
    $errore_commenti '';

    if (
    controlla($oggetto,1) or ($oggetto==segnaposto_oggetto)) {
    $error true;
    $errore_oggetto errore_oggetto_predefinito;
    }
    if ((
    controlla($nome,1)) or ($nome==segnaposto_nome)) {
    $error true;
    $errore_nome errore_nome_predefinito;
    }
    if (!
    isValidEmail($email)){
    $error true;
    $errore_email errore_email_predefinito;
    }
    if ((
    controlla($commenti,1)) or ($commenti==segnaposto_commenti)) {
    $error true;
    $errore_commenti errore_commenti_predefinito;
    }

    if (
    $error){
    generaModulo($oggetto,$nome,$email,$commenti,$telefono,$errore_oggetto,$errore_nome,$errore_email,$errore_commenti);
    }
    else {

    if (
    $telefono == segnaposto_telefono$telefono="-";
    mail(_destinatario,"contatto dal sito - $oggetto","Nome: $nome nOggetto: $oggetto nEmail: $email nCommento: n$commenti nTelefono: $telefono","From:$email");
    echo
    "

    Grazie per aver inviato il messaggio</p>"
    ;?>
    <?php 
    } }

    ?>

    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    1,611
    mi sa che devi postare in javascript... non puoi fare una modifica al volo con php, a meno che non utilizzi ajax e php, ma credo sia sufficiente javascript...
    NON ABBANDONATE CANI O GATTI!!!

  3. #3
    grazie activ, purtroppo non conosco ne js ne ajax mi dai una dritta su come lo imposteresti? in ajax dovrebbe farlo senza cliccare invio giusto?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    1,611
    si ti aiuto però non farmi leggere tutto il codice che hai postato altrimenti se ne va troppo tempo....

    posta solo la parte html con i moduli
    NON ABBANDONATE CANI O GATTI!!!

  5. #5
    Codice PHP:
    /*********************************
    * leggo dal posto il campo radio quotazione
    * o almeno io di solito le spunte le leggo cosi
    **********************************/
    if (isset($_POST['quotazione'])) 
       
    $quotazione=1
    else 
       
    $quotazione=0;

    /******************************
    *ora controllo anche i campi subordinati
    ********************************/
    if (($quotazione==1)&&($prodotto==""))
        
    //ERRORE
    else if (($quotazione==1)&&($quantità==""))
       
    //ERRORE 
    la sintassi puo non essere corretta al 100% ma il senso è quello
    conta che semplicemtne tu controlli la variabile prodotto SE E SOLO SE il campo quotazione è 1
    stessa cosa per la variabile quantita
    Se dopo mezz'ora di gioco non hai ancora capito chi è il pollo da spennare, quel pollo sei tu

  6. #6
    Originariamente inviato da activ
    si ti aiuto però non farmi leggere tutto il codice che hai postato altrimenti se ne va troppo tempo....

    posta solo la parte html con i moduli
    Grazie activ come ha detto ghigno non riesco a farlo funzionare, ho messo un minimo di esempio in html.

    codice:
    Nome: <input type="text" name="nome" /> *
    
    
    Cognome: <input type="text" name="cognome" />*
    
    
    
    Quotazione<input type="checkbox" id="" name="quotazione" />
    
    
    
    Se quotazione è spuntato i campi sotto diventano obbligatori:
    
    
    
    Prodotti <input type="text" name="prodotti" />*
    
    
    Quantità <input type="text" name="quantita" />*
    spero sia sufficiente

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.