• User

    Form con controlli ajax e risultati filtrati con php

    Ciao a tutti, intanto buon 2009.

    Avrei bisogno di consigli per risolvere un problema che mi ha fatto venire un mal di testa da alcuni giorni. Ho creato un form con controlli in ajax in tempo reale e i risultati vengono filtrati da una pagina php esterna, che a seconda dei valori inseriti da un determinato esito.
    Fin qui tutto bene. Ma il problema nasce quando voglio inserire dei risultati in div diversi, per avere una migliore formattazione del form.

    Anche qui sono riuscito in qualche modo a dare risultati in diversi div. Ma ovviamente il codice ajax si rifa a un'unica pagina php e quindi ogni volta a seconda del campo utilizzato appaiono sempre tutti i risultati. Cerco di spiegarmi meglio.
    Esempio:
    Nome:
    Risultato ajax: Il nome Ok, il Cognome ok
    Cognome:
    Risultato ajax: Il nome ok, il cognome ok

    Insomma vorrei fare in modo che nel primo div sotto il nome appaia solo il risultato del nome e sotto il div cognome il risultato relativo al cognome. L'unica soluzione che mi è venuta in mente è creare più pagine php, ma in questo modo non vado ad appesantire il tutto?


  • User Attivo

    Scusa, ma non ho capito molto bene...riesci a postare qualche esempio di codice o uno schemino?


  • User

    function myHandlerCCP() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
    e = document.getElementById("Crea");
    e.innerHTML = myRequest.responseText;
    }
    }

    function CreazioneUtente() {
    var Nome = document.creaUtente.Nome.value;
    var Cognome = document.creaUtente.Cognome.value;
    var Sesso = document.creaUtente.Sesso.value;
    var r = Math.random();
    myRequest = CreateXmlHttpReq(myHandlerCCP);
    myRequest.open("GET","creaUtente.php?Nome="+escape(Nome)+"&Cognome="+escape(Cognome)+"&Sesso="+escape(Sesso)+"&Rand="+r);
    myRequest.send(null);

    Questa è la parte finale del codice che richiama ajax. Prenderà le variabili e scriverà i risultati nel div Crea.

    [HTML]<form name="creaUtente" action=" " method="post">
    <table width="100%" cellspacing="20" border="1">
    <tr align="left">
    <td ><strong>Nome:</strong></td>
    <td ><input type="text" name="Nome" style="width:100%" onkeyup="javascript:CreazioneUtente();" /></td>
    <td id="Crea" rowspan="6" width="70%" valign="top" style="padding-top:5px;"> </td>
    </tr>
    <tr align="left">
    <td><strong>Cognome:</strong></td>
    <td><input type="text" name="Cognome" style="width:100%" onkeyup="javascript:CreazioneUtente();" /></td>
    </tr><br>[/HTML]

    Questa è una parte del form. In questo modo i risultati vengono stampati in un cella a destra dei campi. La mia idea è quella di inserirli sotto ogni campo e fin qui nessun problema, sarei in grado. Però quando vado a compilare i campi in ogni div si ripetono tutti i risultati richiamati nella pagina php. Ad esempio sotto Nome appaiono tutti i risultati del form, invece che solo il risultato relativo del nome. E così per tutti i div che inserisco.