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

    colorare campo input con dati errati

    salve,

    ho un form con diversi campi, quando l'utente clicca su submit, i dati vengono inviati ad un'altra pagina che controlla i campi, se c'è nè qualcuno con contenuti errati, allora torna alla pagina precedente segnalando l'errore e conservando gli id dei campi errati in un array PHP.

    ora quando ritorno nella pagina precedente controllo se questo array è settato in tal caso faccio

    if (isset($_SESSION['errore'])) {
    echo "<script>document.getElementById('nome').style.bac kground='#CCCCCC'</script>";
    }

    solo che non funziona...ho notato che non funziona solo il comando getElementById, invece altri comandi funzionano... tipo alert... non capisco

    Lo sò che il post è un misto php e javascript però penso sia più appropriato postarlo qui...

    grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se lo script viene eseguito prima che la pagina sia completamente caricata, come sospetto, l'errore e' piu' che giusto

    Perche' non setti direttamente da PHP il colore nell'elemento errato?

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Secondo me fai l'assegnazione prima che l'elemento 'nome' venga creato.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    perfetto!!

    infatti lo richiamavo prima che la pagina fosse completamente caricata!

    grazie ad entrambi.


    ps. ma come si colora direttamente da php

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da pippuzzo80
    perfetto!!

    infatti lo richiamavo prima che la pagina fosse completamente caricata!

    grazie ad entrambi.


    ps. ma come si colora direttamente da php
    Un esempio : (scritto cosi senza testarlo)

    codice:
    <style>
     .errore {background-color:yellow}
     .normale {background-color:white}
    </style>
    <?php
    ...
    $errore = $_SESSION['errore'];
    ....
    $class  = $errore == 1 ? "errore":"normale";
    ...
    <input type="input" name="nome" class="<?php print $class;?>" >
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Di solito faccio il controllo nella stessa pagina al momento del submit. Se ho due campi obligatori esempio "nome" e "cognome" faccio cosi :

    codice:
    $errore = false;
    $errNome = false;
    if (isset($_POST['nome']) {
     if (empty($_POST['nome'])) {
      $errore = true;
      $errNome = true;
     }
    } else {
     $errore = true;
     $errNome = true;
    }
    ... stessa cosa x cognome
    
    ... poi per l'aggiornamento
    if ($errore == false) {
      .... script per aggiornamento
    }
    ... poi nell'HTML
    
    $class  = $errNome == 1 ? "errore":"normale";
    ...
    <input type="input" name="nome" class="<?php print $class;?>" >
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    interessante!!


    grazie mille!!

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