Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    Originariamente inviato da camionistaxcaso
    Sicuramente. Il probla è che uno che conosce AJAX lo fa in 2 minuti, chi come me ha solo conoscenze (poche) di PHP trova la soluzione adatta alle proprie conoscenze, nonostante AJAX presumo una grandissima figata


    Io ho fatto una cosa simile giusto qualche giorno fa.
    Se non ho capito male tu devi inviare il form e agire secondo le condizioni:

    1) SE ci sono degli errori

    1.1 - Avvisare l'utente magari con dei messaggi di errore, ad esempio colorare lo sfondo dell' elemento che contiene il campo del form ad esempio una cella di una tabella...

    1.2 - Ripresentare il form con i valori che ha già immesso (sennò x un campo errato dovrebbe riscriverli tutti)

    2) SE NON ci sono errori

    fare quello che devi fare coi dati (ad es. il brodo )

    Se fosse una cosa del genere fai un fischio che io l'ho gia fatta e posso aiutarti. Cmq in effetti W ajax mi devo decidere a smanettarci un po'
    Ciao camionistaxcaso,

    grazie mille per la risposta!
    Si, hai azzeccato in pieno cio' che devo fare.
    Il punto piu' problematico e' che uno dei campi del form e' una grande area di testo in cui e' presente un messaggio, che puo' essere anche di 1000-2000 caratteri, quindi usare la query per ripresentarlo non e' il massimo dell'eleganza...

    Tu come hai risolto la faccenda?


    Grazie mille per l'aiuto, Giuseppe

  2. #12
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Originariamente inviato da panecasareccio
    Ciao, probabilmente hai ragione.

    Ma io sono un novizio, e non ho idea di che cosa sia ajax, conosco soltanto html ed un po' di php. E' facile da imparare questa faccenda di ajax che mi proponi?


    Grazie mille per l'aiuto, Giuseppe

    Non e' troppo difficile, devi avere qualche competenza di javascript, e sapere(o studiare) come funziona una chiamata a sincrona.
    Per il resto ci pensa jquery.

  3. #13
    Originariamente inviato da panecasareccio
    Ciao camionistaxcaso,

    grazie mille per la risposta!
    Si, hai azzeccato in pieno cio' che devo fare.
    Il punto piu' problematico e' che uno dei campi del form e' una grande area di testo in cui e' presente un messaggio, che puo' essere anche di 1000-2000 caratteri, quindi usare la query per ripresentarlo non e' il massimo dell'eleganza...

    Tu come hai risolto la faccenda?


    Grazie mille per l'aiuto, Giuseppe
    Te la semplifico perchè non ti crederai che ti scrivo tutto il codice vero?

    1) form.php (file che contiene il modulo da inviare a control.php)

    2) control.php (file che controlla i dati e li utilizza per farci il brodo )

    Nel file con il form metti delle variabili come valore di default degli input.
    Se il modulo è stato inviato le valorizzi coi valori relativi delle variabili passate con POST.
    Altrimenti se è la prima volta che visualizzi il modulo dai loro un valore nullo.
    Nel file control.php esegui una serie di elseif coi controlli:

    form.php
    Codice PHP:
    /*
         Se il form non è ancora stato inviato le variabili prendono valore Null
         così in locale eviti anche le notice 
    */

    if(!isset($_POST["inviato"]))
    {
      
    $nome Null;
      
    $cognome Null;
      
    $error1 Null;
      
    $error2 Null;
    }

    /*
         Se il form è stato inviato c'è stato un errore
         quindi le variabili prendono valore da quelle passate con POST
         
    */

    if(isset($_POST["inviato"]))
    {
      
    $nome $_POST["nome"];
      
    $cognome $_POST["cognome"];


    Non scordiamoci il modulo
    codice:
    <form action="control.php" method="post">
    
     <input type="hidden" name="inviato" value="inviato">
      <table>
       
       <tr>   
       
        <td bgcolor="<?php echo $error1;?>">
        <input type="text" name="nome" value="<?php echo $nome; ?>">
       
        <td bgcolor="<?php echo $error2;?>">
        <input type="text" name="cognome" value="<?php echo $cognome; ?>">
        <input type="submit" value="invia">
     </table>
    </form>
    control.php
    Codice PHP:
    //inizializzo le var
    $error_msg "";
    $error1 "";
    $error2 "";

    //questa mi serve x capire se si sono verificati errori
    $p 0;

    if(
    $_POST["nome"] == "")
    {
      
    //imposto il messaggio di errore
      
    $error_msg "Inserisci il nome";
      
    $error1 "#ff0000"//colore HTML rosso
      
    $p 1//c'è l'errore!
      //reincludo il modulo
      
    include("form.php");
    }

    elseif(
    $_POST["cognome"] == "")
    {
      
    //imposto il messaggio di errore
      
    $error_msg "Inserisci il cognome";
      
    $error2 "#ff0000"//colore HTML rosso
      
    $p 1//c'è l'errore!
      //reincludo il modulo
      
    include("form.php");
    }

    //stampo il messaggio di errore (eventuale)
    echo $error_msg;

    //se non si sono verificati errori ($p=0) vado avanti
    if($p == 0)
    {
      
    //faccio il brodo coi dati
      
    brodo($_POST["nome"] , $_POST["cognome"]);

    Il bello degli elseif è che se si verifica la condizione si ferma quindi ti da un errore alla volta.
    Facci sapere ciao

  4. #14
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    E' uno scherzo vero ?

    non starai dicendo sul serio / proponendo seriamente questa soluzione ...


  5. #15
    Originariamente inviato da Virus_101
    E' uno scherzo vero ?

    non starai dicendo sul serio / proponendo seriamente questa soluzione ...

    é il pesce d'aprile per il prossimo anno
    lo so è un rimbalzare tra client e server ma se è un novizio come me gli serve per fare pratica no?

  6. #16
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Ma facciamogli fare le cose bene e come devono essere fatte :


    1- file di funzioni o classe statica di gestione form
    2- generazione del form da funzione con gestione parametri.
    3- script di gestione form che utilizza le funzioni create
    4- gestione degli errori e redirect con codici errore e/o messaggi

    Cosi' se uno deve iniziare inizia facendo le cose bene e come dio comanda!!!

    Codice PHP:

    class myFooForm
    {

         final function 
    createForm$opts$data=false )
         {
              
    // metodo statico di generazione form
         
    }

         final function 
    checkFormData($data)
         {
              
    // controlla i dati arrivati in post / get o quello che sia
         
    }

         
    // ETC ETC

    in modo che dopo nella pagina dove deve disegnare il form
    Codice PHP:

    include("./libs/classes/myForm.php");

    // RECUPERO EVENTUALI DATI DA PRECEDENTE SESSION !
    session_start();
    $previousData = isset($_SESSION["myFormData"]) ? $_SESSION["myFormData"] : false ;
    $errors = isset($_SESSION["formErrors"]) ? $_SESSION["formErrors"] : false ;
    unset(
    $_SESSION["myFormData"]) ;

    $form myFooForm::createForm(array( "data" => $previousData "errors"=>$errors )); 
    e nello script di controllo
    Codice PHP:
    session_start();
    $_SESSION["myFormData"] = $_POST ;
    include(
    "../libs/classes/myForm.php");

    $ris myFooForm::checkFormData($_POST);

    if( !
    $ris["result"] )

        
    $_SESSION["formErrors"] = $ris["errors"] ;
        
    header("location:../formPage.php"); 
        die(); 

    O qualcosa di simile magaria nche solo a funzioni, oppure con una classe standard.

  7. #17
    session_start();
    $_SESSION["myFormData"] = $_POST ;

    POST de che??? ;-)

    questo per me comincia ad essere arabo

  8. #18
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Praticamente hai il problema che viene "spezzato" in sotto problemi.

    1 pagina con il form
    2 spedisce i dati a script di gestione dati del form
    // ORA A QUESTO PUNTO :
    Visto che devi memorizzare tali dati il modo migliore e' metterli in sessione.
    Lo script di controllo pertanto devo scaricare i dati ricevuti a tempo di request.
    Controllarli e se sono errati stiparli in sessione e tornare alla pagina del form.

    Pagina che cmq deve caricare e controllare messaggi di errore, e i dati precedentemente inseriti.
    QUindi rigenera il form con i dati inseriti dall'utente e segnala i campi in caso di errore.

  9. #19
    Originariamente inviato da camionistaxcaso
    session_start();
    $_SESSION["myFormData"] = $_POST ;

    POST de che??? ;-)

    questo per me comincia ad essere arabo
    $_POST non è nient'altro che un array e come tale lo si può inserire in sessione.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #20


    Codice PHP:
    $previousData = isset($_SESSION["myFormData"]) ? $_SESSION["myFormData"] : false ;
    $errors = isset($_SESSION["formErrors"]) ? $_SESSION["formErrors"] : false ;
    unset(
    $_SESSION["myFormData"]) ;

    $form myFooForm::createForm(array( "data" => $previousData "errors"=>$errors )); 
    Ecco ad esempio anche questa sintassi per me è arabo, non l'ho mai trovata nelle guide...

    Povero panecasareccio mentre non c'è gli stiamo devastando il thread

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