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

    Selezionare un campo nella OPTION

    Ciao a tutti. Ecco il mio quesito che può sembrare facile, ma io non riesco proprio. Viene creato uno strumento in un database (strumento di misurazione) ed inserisce lo stato di esso tramite una option:
    codice:
    Stato: 
    
    <select name="stato">
    <option value="1">Affidato</option>
    <option value="2">Disponibile</option>
    <option value="3">Riparazione</option>
    <option value="4">Fuori uso</option>
    </select>
    Successivamente vuole modificare il campo quindi vorrei che lui vedesse cosa aveva scelto prima.

    Questa è la soluzione che ho trovato, ma è piuttosto sporca e poco ortodossa:
    Codice PHP:
    Stato: 

    <select name="stato">
    <option value="1"
    <?php 
    if ($row['stato'] == "affidato")
    echo 
    "selected=&acuteselected&acute"
    ?>
    >Affidato</option>
    <option value="2"
    <?php 
    if ($row['stato'] == "disponibile")
    echo 
    "selected=&acuteselected&acute"
    ?>

    >Disponibile</option>
    <option value="3"
    <?php 
    if ($row['stato'] == "riparazione")
    echo 
    "selected=&acuteselected&acute"
    ?>

    >Riparazione</option>
    <option value="4"
    <?php 
    if ($row['stato'] == "fuori uso")
    echo 
    "selected=&acuteselected&acute"
    ?>
    >Fuori uso</option>
    </select>
    Vorrei sapere se c'è un modo per dire qual'è quella inserita precedentemente semplicemente passandogli il campo attraverso la variabile &row['stato'].

    Grazie a chiunque mi dia una mano.

  2. #2
    se te invece del nome memorizzassi il numero o comunque anche con il sistema che hai te...

    Codice PHP:
    if ($row['stato'] == "affidato") echo "selected=selected" 
    o se memorizzi il numero

    Codice PHP:
    if ($row['stato'] == "1") echo "selected=selected" 

  3. #3
    Originariamente inviato da goikiu
    se te invece del nome memorizzassi il numero o comunque anche con il sistema che hai te...

    Codice PHP:
    if ($row['stato'] == "affidato") echo "selected=selected" 
    o se memorizzi il numero

    Codice PHP:
    if ($row['stato'] == "1") echo "selected=selected" 
    Su questo siamo d'accordo, ma vorrei usare un sistema migliore, senza un if then per ogni opzione.

  4. #4
    se tu ulizzassi i numeri potresti mettere tutto dentro un singolo ciclo, ma probabilmente dovresti aver bisogno di una lista che ti traduca poi il numero con il nome vero e proprio, se non devi aggiungere opzioni nuove a quella select ti consiglio di tenere questa versione con un'if per ogni opzione.

  5. #5
    grazie per l'interesse.

    Nessuno propone altre soluzioni?

  6. #6
    Non puoi prescindere dall'if in questo caso (anche se, come dici tu, è "brutta" a vedersi):

    Al max potresti inserire tutti i valori in un array e ciclarlo, e usare l'operatore ternario per verificare la corrispondenza dello stato con quello presente nella select.

    Codice PHP:
    Stato: 

    <select name="stato">
    <?php
     $stati 
    = array(1=>'Affidato'2=>'Disponibile'3=>'Riparazione'4=>'Fuori uso');
     foreach(
    $stati as $k=>$stato){
       
    $selected $k == $stato_attuale "selected='selected'""";
       echo 
    "<option value='$k$selected>$stato</option>";
    }
    ?>
    </select>

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