Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Problema orari

  1. #1

    Problema orari

    Ciao,
    ho un problema che non riesco a capire.
    In un form di modifica, riprendo i dati da modificare dal db e li uso per riempire il form da presentare all'utente.
    Con determinati orari (contenuti nella variabile) il form non mi si riempie correttamente.

    codice:
    <td bgcolor=\"#e9e9e9\" width=\"106\">Ora Appuntamento</td>
        <td bgcolor=\"#e9e9e9\" width=\"79\">$ora_appuntamento
    	<select name=\"ora_appuntamento\">
        <option value=\"\""; if ($ora_appuntamento == '') echo "selected"; ">VUOTO</option>
        <option value=\"0700\""; if ($ora_appuntamento == 0700) echo "selected"; echo ">07:00</option>
        <option value=\"0730\""; if ($ora_appuntamento == 0730) echo "selected"; echo ">07:30</option>
        <option value=\"0800\""; if ($ora_appuntamento == 0800) echo "selected"; echo ">08:00</option>
        <option value=\"0830\""; if ($ora_appuntamento == 0830) echo "selected"; echo ">08:30</option>
        <option value=\"0900\""; if ($ora_appuntamento == 0900) echo "selected"; echo ">09:00</option>
        <option value=\"0930\""; if ($ora_appuntamento == 0930) echo "selected"; echo ">09:30</option>
        <option value=\"1000\""; if ($ora_appuntamento == 1000) echo "selected"; echo ">10:00</option>
        <option value=\"1030\""; if ($ora_appuntamento == 1030) echo "selected"; echo ">10:30</option>
        <option value=\"1100\""; if ($ora_appuntamento == 1100) echo "selected"; echo ">11:00</option>
        <option value=\"1130\""; if ($ora_appuntamento == 1130) echo "selected"; echo ">11:30</option>
        <option value=\"1200\""; if ($ora_appuntamento == 1200) echo "selected"; echo ">12:00</option>
        <option value=\"1230\""; if ($ora_appuntamento == 1230) echo "selected"; echo ">12:30</option>
        <option value=\"1300\""; if ($ora_appuntamento == 1300) echo "selected"; echo ">13:00</option>
        <option value=\"1330\""; if ($ora_appuntamento == 1330) echo "selected"; echo ">13:30</option>
        <option value=\"1400\""; if ($ora_appuntamento == 1400) echo "selected"; echo ">14:00</option>
        <option value=\"1430\""; if ($ora_appuntamento == 1430) echo "selected"; echo ">14:30</option>
        <option value=\"1500\""; if ($ora_appuntamento == 1500) echo "selected"; echo ">15:00</option>
        <option value=\"1530\""; if ($ora_appuntamento == 1530) echo "selected"; echo ">15:30</option>
        <option value=\"1600\""; if ($ora_appuntamento == 1600) echo "selected"; echo ">16:00</option>
        <option value=\"1630\""; if ($ora_appuntamento == 1630) echo "selected"; echo ">16:30</option>
        <option value=\"1700\""; if ($ora_appuntamento == 1700) echo "selected"; echo ">17:00</option>
        <option value=\"1730\""; if ($ora_appuntamento == 1730) echo "selected"; echo ">17:30</option>
        <option value=\"1800\""; if ($ora_appuntamento == 1800) echo "selected"; echo ">18:00</option>
        <option value=\"1830\""; if ($ora_appuntamento == 1830) echo "selected"; echo ">18:30</option>
        <option value=\"1900\""; if ($ora_appuntamento == 1900) echo "selected"; echo ">19:00</option>
        <option value=\"1930\""; if ($ora_appuntamento == 1930) echo "selected"; echo ">19:30</option>
        <option value=\"2000\""; if ($ora_appuntamento == 2000) echo "selected"; echo ">20:00</option>
        <option value=\"2030\""; if ($ora_appuntamento == 2030) echo "selected"; echo ">20:30</option>
        </select>
    se la variabile $ora_appuntamento contiene il valore 0900 o 0930 la select mi si ferma al valore 0700 anche se il valore nella variabile è corretto. Sapete se sto incappando in qualche eccezione?

    Thanx

  2. #2
    Utente bannato L'avatar di Skyline89
    Registrato dal
    Jun 2006
    Messaggi
    225
    nn capisco queli if boh io farei in un modo molto semplice.

    Codice PHP:

    echo "$ora_appuntamento";

    <
    select name=\"ora_appuntamento\">
        <option value=\"\""
    >VUOTO</option>
        <
    option value=\"0700\">07:00</option>
        <option value=\"0730\">07:30</option>
    </select>


    poi al db invii 
    $_POST['ora_appuntamento'] 

  3. #3
    Mi serve per un interfaccia di modifica.

    All'utente che va sulla pagina di modifica deve essere presentato il form precompilato con i dati esistenti nel db che poi se vuole andrà a modificare.
    Nel menù a tendina se voglio che la voce che c'è nel db appaia selezionata devo specificare "selected" nel campo option.

  4. #4

    Re: Problema orari

    Originariamente inviato da tommyxxx
    Ciao,
    ho un problema che non riesco a capire.
    In un form di modifica, riprendo i dati da modificare dal db e li uso per riempire il form da presentare all'utente.
    Con determinati orari (contenuti nella variabile) il form non mi si riempie correttamente.

    se la variabile $ora_appuntamento contiene il valore 0900 o 0930 la select mi si ferma al valore 0700 anche se il valore nella variabile è corretto. Sapete se sto incappando in qualche eccezione?

    Thanx
    non di eccezione, ma di convenzione. in php i numeri che iniziano per 0 sono considerati in notazione ottale, quindi 08 - 09 non esistono. dovresti trattarli come stringhe.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Se potesi essere più chiaro mi faresti un favore.
    Allora, quello che mi stai dicendo è che se io tiro fuori i dati dal db e li butto dentro ad una variabile, quando faccio la comparazione fra il contenuto della variabile e il testo 0900 php li vede come diversi?

    Come faccio a trattarli diversamente?

  6. #6
    non ho detto che li vede "diversi". Dico che per convenzione in php i dati NUMERICI che iniziano con 0 sono in rappresentazione OTTALE. da 1 - 9 in decimale e con la x in exadecimale.

    Quindi un NUMERICO 0930 non viene letto in modo corretto a meno che sia comparato come stringa.

    Se li testi comw stringa "dovrebbero" andare bene... sempreche' in $ora_appuntamento ci sia un valore numerico con lo 0 davanti.

    if ($ora_appuntamento == '0930' )

    non ho capito esattamente quello che fai, ma se estrai un numero dal db con uno 0 davanti, significa che il campo nel db e' dei due: o un numerico zerofill oppure un campo char/varchar.

    Se funziona 0700 e non 08xx/09xx allora il campo e' in "qualche modo" un valore numerico in notazione ottale. tutto qui.

    Stampa le variabili che hai estratto dal db e vedi cosa contengono.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Appunto, ho provato a stampare la variabile e il contenuto è proprio 0900 e il campo ora_appuntamento in mysql è un varchar(10) ...
    Probabilmente hai ragione ma nn so come fare a trattarlo come testo dato che in mysql sembrerebbe già così...

  8. #8
    Originariamente inviato da tommyxxx
    Appunto, ho provato a stampare la variabile e il contenuto è proprio 0900 e il campo ora_appuntamento in mysql è un varchar(10) ...
    Probabilmente hai ragione ma nn so come fare a trattarlo come testo dato che in mysql sembrerebbe già così...
    mettere le apici come gia' ti ho esemplificato prima.

    if ($ora_appuntamento == '0930' )

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    mmmm..... in realtà mi da lo stesso problema... :master:

  10. #10
    Originariamente inviato da tommyxxx
    mmmm..... in realtà mi da lo stesso problema... :master:
    cioe'? quale?

    nello script ad inizio pagina non si capisce bene quello che fai. mi pare non sia corretto.

    potresti postare qualche riga soltanto per cercare di capire meglio? e ben suddivise le righe?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.