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

    problemi con funzione per stampare tendina per data

    ciao a tutti, ho problemi con una funzione che mi stampa tre tendine coi valori per inserire la data di sottomissione di un testo.

    Ho creato una funzione che stampa la form per inserire diversi valori tra cui il testo di articoli vari.
    Per inserire la data, all'interno di questa form ho inserito questa funzione che ho trovato:

    Codice PHP:
    function stampa_select_option_date($par$par_giorno$par_mese$par_anno$par_for_start$par_for_end) {



        echo 
    "<select name=\"{$par}_giorno\" style=\"width: 50px\">";

        echo 
    "<option></option>";

        for(
    $g 1$g <= 31$g++) {

        

            if(!
    ereg("^([0-9]{2,2})$"$g))

                
    $g_value "0" $g;

            else

                
    $g_value $g;

        

            if(
    $par_giorno != "" && $par_giorno == $g)

                echo 
    "<option value=\"{$g_value}\" selected=\"selected\">{$g}</option>";            

            else

                echo 
    "<option value=\"{$g_value}\">{$g}</option>";

        }

        echo 
    "</select>";



        echo 
    " ";



        
    $array_mesi = array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");



        echo 
    "<select name=\"{$par}_mese\" style=\"width: 75px\">";

        echo 
    "<option></option>";

        for(
    $m 1$m <= 12$m++) {

        

            if(!
    ereg("^([0-9]{2,2})$"$m))

                
    $m_value "0" $m;

            else

                
    $m_value $m;

            

            if(
    $par_mese != "" && $par_mese == $m)

                echo 
    "<option value=\"{$m_value}\" selected=\"selected\">{$array_mesi[$m-1]}</option>";            

            else

                echo 
    "<option value=\"{$m_value}\">{$array_mesi[$m-1]}</option>";

        }

        echo 
    "</select>";



        echo 
    " ";



        echo 
    "<select name=\"{$par}_anno\" style=\"width: 75px\">";

        echo 
    "<option></option>";

        for(
    $a date("Y") - $par_for_start$a <= date("Y") + $par_for_end$a++) {

            if(
    $par_anno != "" && $par_anno == $a)

                echo 
    "<option selected=\"selected\">{$a}</option>";            

            else

                echo 
    "<option>{$a}</option>";

        }            

        echo 
    "</select>";


    il problema è : _quando voglio passare i valori al DB

    Codice PHP:
    $giorno_trim $_POST['{$par}_giorno'];
    $mese_trim $_POST['{$par}_mese'];
    $anno_trim $_POST['{$par}_anno'];
    $data_DB $anno_trim."-".$mese_trim."-".$giorno_trim
    ho fatto così ma mi dice che sono undefined index

    -quando voglio inserire i valori 'value' delle select tra i parametri della funzione che stampa la form

    Codice PHP:
    stampa_form($titolo$tipo$soggetto$g_value$m_value$a$testo); 
    inserendo questi valori se sbaglio a compilare la form non mi restituisce nessun valore nelle tendine della data.

    come faccio?

    Grazie a tutti quelli che mi risponderanno!

  2. #2
    Quando vai a recuperare i dati da $_POST, prova a fare così:
    Codice PHP:
    $giorno_trim $_POST[$par.'_giorno']; 
    $mese_trim $_POST[$par.'_mese']; 
    $anno_trim $_POST[$par.'_anno']; 
    $data_DB $anno_trim."-".$mese_trim."-".$giorno_trim
    Ricordati che l'apice singolo non "traduce" le variabili.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    grazie Alcio74, ora però ho un altro problema. Avevo già detto che la funzione
    Codice PHP:
    stampa_select_option_date($par$par_giorno$par_mese$par_anno$par_for_start$par_for_end); 
    è dentro un'altra funzione che stampa una form. Questa funzione è la seguente:

    Codice PHP:
    function stampa_form($titolo$tipo$soggetto$g_value$m_value$a$testo){ 
    i valori
    Codice PHP:
     $g_value$m_value$a
    riguardano la data, precisamente sono i valori che nella funzione stampa_select_option_date che riportavo nel primo post della discussione indicano i value degli <option>.
    devo aver sbagliato a inserire quelli come parametri perché non mi ridà i valori già digitati nella form nelle tendine della data se sbaglio ad inserire qualche valore negli altri campi della form.

    Inoltre se il testo dello scritto da inserire è lungo non me lo inserisce nel DB, il testo l'avevo inserito nel DB mysql come longtext not null

  4. #4
    Scusa ma non ti ho proprio capito!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Dunque: io ho la funzione staMpa_form()

    Codice PHP:
    function stampa_form($titolo$tipo$soggetto$g_value$m_value$a$testo){ 
    Questa funzione stampa la form per inserire un testo, il titolo, la data di esso.

    se il pulsante submit non è stato premuto allora mi viene stampata la form

    se il pulsante submit della form è stato premuto una serie di if controlla che i campi siano stati riempiti correttamente.

    se i campi sono stati riempiti bene i dati della form sono inseriti nel DB.

    Se invece non sono stati riempiti correttamente viene stampata la form con i dati passati come parametri nei campi, cioè quei dati correttamente inseriti che l'utente non dovrà riscrivere. Quindi l'utente che avrà sbagliato es. la data non dovrà riscrivere tutto perché si troverà la form con i valori corretti già inseriti ma dovrà riscrivere solo la data.
    Il problema è che se io scrivo i parametri nella funzione come ho fatto qui sopra se inserisco correttamente la data nel caso io sbagli a riempire es. solo il campo titolo non dovrò riempire solo il campo titolo ma anche la data, perché qui parametri non vanno bene.

    Ora, visto che dentro la funzione stampa_form (ecc. ecc) io ho inserito la funzione

    Codice PHP:
    stampa_select_option_date($par$par_giorno$par_mese$par_anno$par_for_start$par_for_end); 
    che trovi completa nel primo post del thread e che i parametri $g_value, $m_value, $a della funzione stampa_form io li ho presi dalla funzione stampa_select_option_date, vorrei sapere che parametri dovrei inserire al posto di $g_value, $m_value, $a per far sì che in caso sbagli ad inserire un campo della form diverso dalla data io trovi ristampata la data correttamente e non il campo vuoto come mi accade ora.

    Grazie.

  6. #6
    Ora ho capito un po' meglio.
    Come hai pensato di fare il debug?
    Hai provato a vedere se le variabili che passi alla funzione arrivano davvero alla funzione?

    Provato a fare una echo?

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    È strano perché le variabili con la echo vengono stampate, ma nel campo data non appaiono. Forse che trovino difficoltà a essere stampate perché il loro valore dovrebbe essere inseerito all interno della funzione stampa_select_option_date ?

  8. #8
    Se non vengono stampate nel menu a tendina è perché il il controllo tra quanto scritto ed il numeretto del menù non torna neanche una uguaglianza.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.