Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    Stile condizionale in PHP

    Ciao a tutti, chiedo subito scusa per il titolo forse un po confuso, cerco di rendere meglio l'idea, sto cercando un modo di applicare ad un campo di un form un "background-color" diverso nel caso una condizione sia vera, di seguito l'esempio:


    codice:
    <?php
    <div > 
    <input type='text' id='S1' tabIndex='1' value='Paolo' name='S1'/> 
    </div>
    ?>
    Nell'esempio il valore è "Paolo" se questo coincidesse ad uno dei nomi inseriti tramite un primo form su un'altra tabella mysql precedentemente creata il colore dello sfondo del campo dovrebbe diventare rosso.

    Ho provato ad inserire qualcosa come il codice sotto, dove "%N1%,%N2%,%N3%,%N4%" sono delle variabili valide che sarebbero inserite nel primo form, ma come potete notare non è una cosa valida.

    codice:
    <?php
    <div > 
    <input type='text' id='S1' tabIndex='1' value='Paolo' name='S1' 
    if($value == %N1%,%N2%,%N3%,%N4% style='background-color:red') /> 
    </div> 
    ?>
    Sono alle prime armi e molto cosciente dalla mia ignoranza, mi sto dando da fare per imparare, ma non ho trovato nulla di simile sul forum e altrove, sinceramente, non so se sia il caso di provare con degli script oppure direttamente sulle tabelle del database, se qualcuno mi da una dritta almeno su che cosa devo cercare mi sarà di grande aiuto.

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    una roba simile..
    Codice PHP:
    <input type='text' id='S1' tabIndex='1' value='Paolo' name='S1'  <?php if($value == $N1 or $value == $N2 or $value == $N3 or $value == $N4 ) { echo "style='background-color:red'"; } ?> />
    però ti consiglio, se devi riusarlo, di fare una classe CSS e applicarla..

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    oppure, risparmiando ancora codice:

    Codice PHP:
    <?php 
    if($value == $N1 or $value == $N2 or $value == $N3 or $value == $N4 $color "red";
    else 
    $color "black"
    ?>   

    <input type='text' id='S1' tabIndex='1' value='Paolo' name='S1' style='background-color:<?php echo $color?>' />

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    sei diaboliko..

  5. #5
    Ringrazio entrambi, ma purtroppo non va bene, sicuramente per incompetenza mia nell'applicare i vostri codici, o forse nello spiegare quel che intendo fare.

    Ho provato di replicare i vostri codici adattandoli in tutti i modi per il caso mio ma non è successo niente.

    Forse se cerco di essere più chiaro, posso aiutarvi ad aiutarmi.

    1- Ho un form con vari campi d'input nei quali posso inserire vari nomi o numeri, poi cliccando sul pulsante "invia" questi dati devono andare a popolare una tabella nel database, ma prima.
    2- Prima che i dati arrivino al database ho bisogno di controllare visivamente se i dati inseriti nel primo form coincidono con un secondo form di controllo già compilato dove i valori coincidenti dovrebbero colorarsi in modo che sia evidenziata la coincidenza, dopodiché cliccando sul pulsante "Invio" i dati prosseguono il loro camino verso il database.

    Quel che voglio ottenere è, quindi, che una volta inseriti i dati sul primo form e inviati alla pagina successiva i valori variabili identificati come %N1%, %N2% ecc quando confrontati a quegli costanti già presenti sul secondo form devono collorarsi lo sfondo ogni qualvolta i dati siano uguali.

    Spero essermi spiegato meglio.

    Aggiungo:
    Codice primo form di input:

    codice:
    <input type='text' id='N1' size='1' tabindex='1' name='N1' value=' '/>
    Di modo che se il valore inserito sul codice sopra fosse 'Paolo' andrebbe a coincidere con quello del form di "controllo visivo" conforme codice esemplificato qui sotto e il campo dovrebbe cambiare colore.

    codice:
    <input type='text' id='S1' size='1' tabIndex='1' name='S1' value='Paolo'/>
    Da questi esempi credo sia intuibile che %N1% si referisca al "ID" del campo.1 del primo form quindi %S1% dovrebbe identificare il campo.1 del secondo form ma forse non è cosi perché questo secondo form è soltanto un form di controllo in cui dati non devono andare sul database.

    Se non sono riuscito a farmi capire pazienza. Ringrazio ancora una volta per l'attenzione e per avermi dato l'indicazione di procedere sulla strada del codice PHP ed eventualmente implementare una classe CSS senza ricorrere agli script.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    scusami, sicuramente non ho capito io ma...

    se sai già quali sono i possibili valori di controllo, perchè metterli in un secondo form?

    cioè per fare l'esempio banale se il tuo valore di controllo per il campo nome può essere Paolo o Pippo, non c'è bisogno che crei un form di controllo

    semplicemente trasmetti il valore postato nel primo form con $nome = $_POST["nome"]

    e gli fai i controlli che vuoi dicendo che
    if ($nome == "Pippo") {
    fai quello che ti pare

    }
    else if ($nome == "Paolo") {
    fai un'altra cosa
    }

    a questo proposito puoi anche utilizzare lo "switch case"

  7. #7
    Proverò di adattare ciò che mi suggerisci ma intanto per capirci, il form di controllo (form.2) è basato su una lista fissa di dati, sono i valori inseriti sul form di input (form.1) che sono variabili, poi una volta confrontati posso visualizzare quali sono i valori coincidenti, cioè, con lo sfondo del campo colorato di rosso ed eventualmente stampare.

    Perciò come da titolo parlavo di "stile condizionale" ossia, se ad esempio, "Pippo" coincide con un nome presente in lista il nome "Pippo" sul form di controllo verrebbe colorato.

    Grazie ancora.

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    ok in questo caso la soluzione migliore è crearti un array con i nomi e l'eventuale colore abbinato

    poi cerchi il valore postato nell'array e recuperi il valore del colore

    se non la conosci bene, cerca nel manuale php la funzione in_array, troverai una miriade di esempi

  9. #9
    Sto provando cosi:

    Codice PHP:
    <?php 
    <div >  $name = array('%N1%','%N2%','%N3%'); 
    if (
    in_array('1'$name)) 
    { echo 
    "<input type='text' id='S1' tabIndex='1' value='Pippo' name='S1' 
    style='backgroun-color:red'/>"

    }else{ echo 
    "<input type='text' id='S1' tabIndex='1' value='Pippo' name='S1' 
    style='backgroun-color:black'/>"
    ; }  
    </
    div
    ?>
    Ma il risultato è catastrofico.

    Cercherò di leggere di più.

    Ti ringrazio tanto diabolikk e anche telegio. per il vostro interessamento.

  10. #10
    Cosi facendo la formattazione del form non viene stravolta ma neppure vengono fuori i colori, se qualcuno potesse dirmi se è un problema di sintassi o altro.
    Sarei grato.
    Codice PHP:
    <div > 
    <?php $value = array('%N1%','%N2%','%N3%'); 
    if (
    in_array('Pippo'$value)) { $color "red"; }else{ $color "black"; } ?>
    <input type='text' id='S1' tabIndex='1' value='Pippo' name='S1' 
    style='background-color:<?php echo $color?>' /> 
    </div>

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.