Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43

    Problema script form php

    Ciao ragazzi, sto creando una pagina php che preleva dal database dei dati in base ad un intervallo di date che vengono inserite. Le date si inseriscono attraverso un form ma c'è un problema con il prendere i dati, visto che i valori devono essere passati alla stessa pagina.
    Ecco lo script in cima alla pagina:
    Codice PHP:
    <?php

    if(isset($_POST['submit'])){

        
    $sel_data_inizio=$POST['inizio'];
        
    $sel_data_fine=$POST['fine'];

        
    $data_inizio=date("Y-m-d"strtotime(str_replace('/''-'$sel_data_inizio)));
        
    $data_fine=date("Y-m-d"strtotime(str_replace('/''-'$sel_data_fine)));


    }else{
        
    $sel_data_inizio="01/01/1945";
        
    $data_inizio=date("Y-m-d"strtotime(str_replace('/''-'$sel_data_inizio)));
        
        
    $sel_data_fine=date("d/m/Y"time());
        
    $data_fine=date("Y-m-d"strtotime(str_replace('/''-'$sel_data_fine)));
    }
    ?>
    E questo il form:
    codice HTML:
    <form id="filtra" name="filtra" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
            <div id="date" class="filtro">
                <p>Seleziona le date</p>
                 <label for="inizio">Data Inizio</label><input type="text" id="inizio" name="inizio" placeholder="gg/mm/aaaa" value="<?php echo $sel_data_inizio ?>" />
                 <label for="fine">Data Fine</label><input type="text" id="fine" name="fine" placeholder="gg/mm/aaaa" value="<?php echo $sel_data_fine ?>" />
            </div>
    
    [...]
    
            <div id="vai">
                <input id="bottone" class="bottone" type="submit" value="Elabora" />
                <input class="bottone" type="reset" value="Resetta" />
            </div>
    </form>
    Il problema è che al caricamento della pagina ci devono essere le date che ho inserito io: quindi la data di inizio 01/01/1945 e la data di fine del giorno di oggi. Ma quando vado ad elaborare la pagina, quindi clicco sul bottone submit mi ricarica la pagina con questi stessi valori, senza utilizzare quelli inseriti dopo il primo caricamento.
    Mi sto scervellando. Un aiuto è gradito.
    Grazie.

  2. #2
    Verifica che la data passata sia corretta.
    Verifica che questa:
    Codice PHP:
    $data_inizio=date("Y-m-d"strtotime(str_replace('/''-'$sel_data_inizio))); 
    e questa:
    Codice PHP:
    $sel_data_inizio=$POST['inizio']; 
    ti diano le informazioni corrette.
    Io uso timestamp e mi evito miriadi di grattacapi… con quello ti darei una mano volentieri

    Inoltre strtotime richiede una formattazione precisa:

    Codice PHP:
    <?php
    echo strtotime("now"), "\n";
    echo 
    strtotime("10 September 2000"), "\n";
    echo 
    strtotime("+1 day"), "\n";
    echo 
    strtotime("+1 week"), "\n";
    echo 
    strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
    echo 
    strtotime("next Thursday"), "\n";
    echo 
    strtotime("last Monday"), "\n";
    ?>
    Probabilmente usi data italiana e lui richiede quella americana...
    Ultima modifica di portapipe; 19-01-2014 a 19:17
    Ce l'ho fatta! - ItalianPixel -

  3. #3
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    La data passata dovrebbe essere corretta perché uso il datepicker JQuery che formatta la data già nel formato dd/mm/yyyy e poi con
    Codice PHP:
    $data_inizio=date("Y-m-d"strtotime(str_replace('/''-'$sel_data_inizio))); 
    formatto la data in yyyy-mm-dd per il prelievo dal database.
    Il punto è che al momento che premo su submit, mi ricarica la pagina ma con il valore iniziale che ho definito io, quindi 01/01/1945.
    E' come se non prendesse l'invio del form.

  4. #4
    E' un sito che stai cominciando ora? No perché ti assicuro che ti semplifichi la vita di molto con il timestamp (mio parere).
    Hai dei semplici numeri da verificare ed essendo numeri tondi ci fai tutte le verifiche del caso e ti eviti il date(), diminuendo le possibilità di errore.
    Se invece il sito è già pieno di dati e in funzione allora vediamo il da farsi.
    Ce l'ho fatta! - ItalianPixel -

  5. #5
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    Nono, sono all'inizio. Come si usa il timestamp in questo caso?

  6. #6
    Bene, una giovane mente da forgiare…

    Allora il timestamp sono i secondi passato dal primo gennaio 1970.
    Questo ti permette di lavorare su un semplice numero e convertire ogni data in quel numero, cosa che fai con strtotime.
    Senza timestamp devi riconvertirlo in date(). Qualsiasi timestamp lo puoi mostrare in data "leggibile" tramite la funzione date() e passandogli direttamente il timestamp nel database.

    L'utilizzo del timestamp è ottimo perché puoi estrarre tutti i dati con data tra 1 e 3600, ovvero tra la mezzanotte e l'una del primo gennaio 1970. Così sarà ogni tuo calcolo, a prescindere dalla formattazione, dal paese di navigazione o di limitazione di qualsiasi plugin!
    Ce l'ho fatta! - ItalianPixel -

  7. #7
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    Ok, però se l'utente inserisce una data già formattata in dd/mm/yyyy e la converto in formato yyyy-mm-dd per il pescaggio dal database, ho già fatto. Il problema è che non capisco il perché al caricamento della pagina mi dà la data che gli ho detto io cioè 01/01/1945 invece che quella inserita prima dell'invio con il submit. La fase della conversione della data ho già provato e funziona, ma non capisco perché non riesce a prendere il valore della data inserita visto che ho usato un if per controllare se è avvenuto l'invio o no.

  8. #8
    La data dell'utente la converti con strtotime e sei a posto! Prova con i timestamp e fammi sapere. Anche il calcolo è più semplice da fare negli if!
    Ce l'ho fatta! - ItalianPixel -

  9. #9
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    Visto che non ho capito come usare il timestamp, puoi modificarmi lo script che ti ho proposto all'inizio per indicarmi il metodo giusto?
    Grazie.

  10. #10

Tag per questa discussione

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.