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

    INSERIRE CSS dentro un Comando PHP per evidenziare textarea

    Ho questo comando php.

    Codice PHP:
    if(isset($_POST['messaggio']) and $_POST['messaggio'] != ""){//<- controllo messaggio
        
    $messaggio strip_tags($_POST['messaggio']);
    }
    elseif(isset(
    $_POST['messaggio'])){
        
    $error .= "Inserire un messaggio.<br/>";

    Praticamente invece che ricevere come errore una pagina bianca con scritto "inserire un messaggio" vorrei che non si aprisse nessuna pagina, ma si evidenziasse il bordo della textarea in rosso.
    In CSS utilizzerei questo codice. ma come lo inserisco nella stringa $error??

    codice:
    input.error, textarea.error {border: 2px solid #F67E8F;}

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, non so bene come funziona tutta la tua pagina o script ma banalmente ( a meno che tu non voglia o possa usare un validatore lato client) potresti fare una cosa di questo tipo.
    codice:
    ..............
    <?php
    $classError = $error ? 'error' : ''; //$error sarà quello che determina l'errore appunto
    ?>
    <input type="text" name="...." value="...." class="<?php echo $classError; ?>" />
    Quindi se riconosci che esiste un errore, la classe si valorizza e viene appicata, altrimenti la classe non esiste e non vedrai differenze.

  3. #3
    Praticamente ho questa textarea "messaggio" che se vuota, si deve evidenziare il bordo della text area in rosso.
    Io praticamente avevo pensato di creare una classe "error" a cu attribuisco un suo .css specifico (si evidenzia il bordo della textarea in rosso).
    Praticamente ho diversi controlli e se una delle text area è vuota viene iscritto il suo id in "missing", se "missing" non è vuoto si genera la classe error

    Codice PHP:
    //se non sono stati immessi campi obbligatori
    if ( isset( $_POST['submit'] ) && isset($missing) && !empty($missing)) :
       
    $info_message '<p class="error">' $error_missing_fields '</p>';
    elseif (
    $_POST['submit'] && !$mail_sent) :
       
    //se ci sono stati problemi con l'invio della mail da parte del server
       
    $info_message '<p class="error">' $error_mail_server '</p>';
    endif; 
    questo il .css per error (ma non so se puo essere giusto)
    codice:
    input.error, textarea.error {border: 2px solid #F67E8F;}
    QUESTA è LA PARTE DOVE HO PROBLEMI. Dovrebbe essere la parte che va nel foglio html, ma value e class non mi riconoscono il php neanche con <?php ?>


    codice HTML:
    <label for="email">Email <abbr title="campo obbligatorio">*</abbr></label>
            <input type="text" name="email" id="email" tabindex="2"
               value="<?php if ( isset( $missing ) && isset($email) ) echo $email; ?>"
               class="<?php if (isset( $missing ) && in_array('email',$missing))
                echo 'error';
               ?>"/>

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Io di solito faccio così:
    Codice PHP:
    <?php
    $errors  
    = array(); // o = [] per le nuove versioni di php
    if(isset($_POST['submit'])){
        if(
    trim($_POST['campo']) == ''){
            
    $errors['campo'] = 'Campo non può essere vuoto';
        }
        
        if(!
    validMail($_POST['campo2'])){ // funzione che controlla la mail
            
    $errors['campo2'] = 'Campo2 non è una mail valida';
        }

        
    // altri controlli 

       
    if(empty($erros)){
           
    // Controlli ok, posso salvare su db o inviare mail o 
           // quello che si vuole
           
    header('location: ...'); // Ridiriggo su una landing page
           
    exit();
       }
    }
    ?>

    <form ...>
        <?php 
        $class 
    "input-text";
        if(isset(
    $errors['campo']))
           
    $class .= " error"
        
    ?>
       <input name="campo" class="<?php echo $class ?>" value="<?php echo @$_POST['campo'?>"/>
       <!-- Ovviamente il  value andrebbe trattato meglio per evitare che i dati messi dall'utente 
        rompano l'html. Visto che non è argomento della domanda ho lasciato il valore del post -->
       <?php 
        $class 
    "input-email";
        if(isset(
    $errors['campo2']))
           
    $class .= " error"
        
    ?>
       <input name="campo2" class="<?php echo $class ?>" value="<?php echo @$_POST['campo2'?>" />

       <!-- etc per gli altri campi
    </form>
    Chiaramente puoi anche farti una classe helper che ti semplifichi le cose
    Ultima modifica di boots; 24-05-2017 a 10:52

  5. #5
    si il mio problema è che mi da errore su tutte le stringhe php all'interno di <form></form>

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    e che errore ti da?

  7. #7
    Quote Originariamente inviata da boots Visualizza il messaggio
    e che errore ti da?
    all'interno delle textarea mi compaiono le stringhe php che sono dentro a class e value come questa

    Codice PHP:
    <?php if ( isset( $missing ) && isset($email) ) echo $email?>

    Codice PHP:
    <label for="email">Email <abbr title="campo obbligatorio">*</abbr></label>
            <input type="text" name="email" id="email" tabindex="2"
               value="<?php if ( isset( $missing ) && isset($email) ) echo $email?>"
               class="<?php if (isset( $missing ) && in_array('email',$missing))
                echo 
    'error';
               
    ?>"/>

    inoltre non mi riempie la classe error

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Domanda banale: ma il tuo file con la form è .php ?
    Se si, se vedi il sorgente (ctrl+u, su ff o chrome)pagina è corretto? o mancano apici o apertuta/chiusura tag?

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.