magomac Inviato 4 Maggio 2007 Segnala Condividi Inviato 4 Maggio 2007 Ciao a tutti...... è possibile, in una pagina php che contiene un form html, far si che, prima dell'invio del form, vengano eseguite delle operazioni utilizzando i dati appena scritti??? Mi spiego meglio facendo un esempio stupido..... Un form con tre campi: Nome, Cognome, Nome2 Alla pressione del tasto SUBMIT, prima di inviare i dati, la pagina controlla tramite un opportuno codice php che il contenuto di Nome e Nome2 sia lo stesso..... se la risposta è positiva allora invia i dati e va alla pagina segnata nell "action" del form, invece, se la risposta è negativa, SENZA CAMBIARE PAGINA E SENZA INVIARE DATI apre una finestra di errore per comunicare all'utente il problema..... Spero di essermi spiegato abbastanza chiaramente..... Grazie a tutti! Ciao Link al commento Condividi su altri siti Altre opzioni di condivisione...
T1T Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 al form imposti come azione un file php dove semplicemente con un controllo (if/else) verifichi queste cose, se il controllo va a buon fine elabori i dati, altrimenti con un javascript dai un messaggio di errore... www.t1t.it Il mio sito personale www.appartamentiumago.it ....casa vacanza in Croazia, ottimi i prezzi e i simpatici gestori MacBook Pro "17 Core Duo - iMac G3 Flavors 333 Mhz - 2xiBook Clamshell G3 300Mhz with airport (Tangerine&Blue) - Canon EOS 350D + 18/55 + 55/200 Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 5 Maggio 2007 Autore Segnala Condividi Inviato 5 Maggio 2007 al form imposti come azione un file php dove semplicemente con un controllo (if/else) verifichi queste cose, se il controllo va a buon fine elabori i dati, altrimenti con un javascript dai un messaggio di errore... il fatto è che in questo modo cambio pagina e quindi poi per tornare al form l'utente dovrebbe tornare indietro e probabilmente anche ricompilare tutto...... Ci sono dei siti dove, appena premi il tasto, controlla ad esempio che Password e Controlla Password siano uguali........ Link al commento Condividi su altri siti Altre opzioni di condivisione...
T1T Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 ho fai un controllo con java oppure tramite php fai ricaricare la pagina ripassando i dati esatti inseriti dall'utente www.t1t.it Il mio sito personale www.appartamentiumago.it ....casa vacanza in Croazia, ottimi i prezzi e i simpatici gestori MacBook Pro "17 Core Duo - iMac G3 Flavors 333 Mhz - 2xiBook Clamshell G3 300Mhz with airport (Tangerine&Blue) - Canon EOS 350D + 18/55 + 55/200 Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 5 Maggio 2007 Autore Segnala Condividi Inviato 5 Maggio 2007 ho fai un controllo con java oppure tramite php fai ricaricare la pagina ripassando i dati esatti inseriti dall'utente alla seconda opzione avevo pensato....... se proprio non troverò altre soluzioni opterò per quella..... Invece per quanto riguarda il controllo con java mi sai dare qualche info in più? Non ho mai usato java e javascript (eccetto script pre confezionati)...... Grazie mille Link al commento Condividi su altri siti Altre opzioni di condivisione...
T1T Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 java è molto utile in questi casi e non è nemmeno troppo difficile da maneggiare.. comunque prova a spulciare un po' su html.it www.t1t.it Il mio sito personale www.appartamentiumago.it ....casa vacanza in Croazia, ottimi i prezzi e i simpatici gestori MacBook Pro "17 Core Duo - iMac G3 Flavors 333 Mhz - 2xiBook Clamshell G3 300Mhz with airport (Tangerine&Blue) - Canon EOS 350D + 18/55 + 55/200 Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 5 Maggio 2007 Autore Segnala Condividi Inviato 5 Maggio 2007 java è molto utile in questi casi e non è nemmeno troppo difficile da maneggiare..comunque prova a spulciare un po' su html.it Ho sfogliato ben bene la guida di javascript trovata su html.it Ho capito che dovrei assegnare, tramite onclick, al pulsante submit la funzione javascript che esegua il controllo ma non ho minimamanete capito come passare allo script i valori immessi nel mio form..... Siete in grado di illuminarmi??? Grazie Link al commento Condividi su altri siti Altre opzioni di condivisione...
T1T Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 devi assegnare gli id ai vari campi <input id="num" type="text" size="5"> e all'azione assegni una sorta di: onClick="controllo(document.getElementById('num').value), ecc.." che richiama una funzione precedente creata che legge i valori pasati e vede se sono uguali altrimenti alert('errore....'); www.t1t.it Il mio sito personale www.appartamentiumago.it ....casa vacanza in Croazia, ottimi i prezzi e i simpatici gestori MacBook Pro "17 Core Duo - iMac G3 Flavors 333 Mhz - 2xiBook Clamshell G3 300Mhz with airport (Tangerine&Blue) - Canon EOS 350D + 18/55 + 55/200 Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 5 Maggio 2007 Autore Segnala Condividi Inviato 5 Maggio 2007 devi assegnare gli id ai vari campi <input id="num" type="text" size="5"> e all'azione assegni una sorta di: onClick="controllo(document.getElementById('num').value), ecc.." che richiama una funzione precedente creata che legge i valori pasati e vede se sono uguali altrimenti alert('errore....'); inizio già a capirci di più...... ovviamente quello dei valori uguali era un esempio.... a me in questo momento servirebbe prendere il sesso di una persona (le opzioni sono o S o M) e la categoria scelta e se ad esempio uno ha selezionato sesso M e una categoria femminile da errore...... in PHP saprei farlo senza problemi in java la vedo più dura..... Cioè io quindi nel submit devo mettere onClick="controllo(document.getElementById("sesso').value),("classe').value)" e poi nell'head della pagina faccio la funzione di controllo che in PHP farei così if($sesso=='M' AND $categoria=='femminile') {echo"errore maschio in categoria femminile etc...";} elseif($sesso=='F' AND $categoria=='maschile') {echo"errore femmina in categoria maschile etc...";} else{fai ciò che devi fare}; In javascript come devo impostare questa funzione in modo che se cade in uno dei due if mi apra un alert con il messaggio SENZA MANDARE IL FORM e invece, se supera i due if, MANDI IL FORM ALLA PAGINA SUCCESSIVA??? Grazie mille!!!!!! Ciao Link al commento Condividi su altri siti Altre opzioni di condivisione...
T1T Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 <script language="javascript"> function positivoNegativo(sesso, classe) { if(sesso!=classe) { alert('messaggio di errore'); } else { ... } } </script> al posto dei puntini è da mettere l'istruzione per mandare il form... sto dando un'occhiata in giro.. www.t1t.it Il mio sito personale www.appartamentiumago.it ....casa vacanza in Croazia, ottimi i prezzi e i simpatici gestori MacBook Pro "17 Core Duo - iMac G3 Flavors 333 Mhz - 2xiBook Clamshell G3 300Mhz with airport (Tangerine&Blue) - Canon EOS 350D + 18/55 + 55/200 Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 in realtà puoi fare eseguire il javascript di controllo usando non l'evento onclick ma l'evento onsubmit: in questo modo ottieni quanto desiderato, ossia il controllo viene fatto prima di eseguire l'elaborazione ma in caso di errore non devi ricaricare la pagina e l'operatore si trova già tutti i dati pronti, solo da modificare. il codice javascript deve ritornare un valore true o false a seconda dell'esito del controllo: infatti onsubmit si attende questo valore per poter, a javascript eseguito, procedere con l'invio dei dati al php di elaborazione. in pratica il tuo codice html diventa una cosa di questo tipo: <form name="modulo" action="elaborazione.php" onsubmit="javascript:controlla(modulo, nome, 'Nome e cognome');"> ... a seguire il codice della form ... Nome e cognome: <input type="text" name="nome" id="nome" /> ...... a seguire il resto del codice .... <input type="submit" value="Invia"> </form> lo javascript esegue il controllo nel modo che ti hanno suggerito (accedi ai vari campi tramite il loro nome). nell'esempio che ti riporto sotto, dopo che l'utente ha fatto click sul tasto Submit, javascript esegue un controllo che blocca l'operazione nel caso l'utente abbia lasciato vuoto un certo campo. In caso di errore viene presentato un messaggio di diagnostica e in più alla chiusura del messaggio di errore non solo la pagina rimane come compilata dall'utente ma ti si riposiziona pure il cursore direttamente sul campo che deve essere riempito ): function controlla(formId, elemId, fieldName) { if (document.forms[formId].elements[elemId].value == "") { alert ("\n Il campo "+fieldName+" non contiene nessun valore."); document.forms[formId].elements[elemId].focus(); return false; } else { return true; } } Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
T1T Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 ottimo... non avevo mai provato ad utilizzare onsubmit...! www.t1t.it Il mio sito personale www.appartamentiumago.it ....casa vacanza in Croazia, ottimi i prezzi e i simpatici gestori MacBook Pro "17 Core Duo - iMac G3 Flavors 333 Mhz - 2xiBook Clamshell G3 300Mhz with airport (Tangerine&Blue) - Canon EOS 350D + 18/55 + 55/200 Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 5 Maggio 2007 Autore Segnala Condividi Inviato 5 Maggio 2007 Allora..... ho provato ad adattare quando spiegato (benissimo) da grigio.... Evidentemente però devo aver sbaglòiaato qualcosa nella sintassi del javascript perchè non va..... Allora.. Questo è il tag form: <form name="datiPartecipante" method="post" action="addpart_step2.php" onsubmit="javascript:controlla(datiPartecipante, sesso, classe);"> "sesso" e "classe" sono gli ID dei due campi su cui devo fare il controllo (l'id l'ho aggiounto solo a quei due campi.... a tutti gli altri ho lasciato solo il name tanto non mi servono per il controllo)..... il fieldName l'ho tolto tanto per quello che devo fare non mi serve a molto..... Questo invece è quanto ho inserito nell'head della pagina: <script language="javascript"> function controlla(formId, sesso, classe) { if (document.forms[formId].elements[sesso].value == "M" AND document.forms[formId].elements[classe].value == "laserRadial_F" ) { alert ("\n Errore! Stai tentando di iscrivere un maschio in una categoria femminile!."); document.forms[formId].elements[classe].focus(); return false; } else (document.forms[formId].elements[sesso].value == "F" AND document.forms[formId].elements[classe].value == "laserRadial_M" ) { alert ("\n Errore! Stai tentando di iscrivere una femmina in una categoria maschile!."); document.forms[formId].elements[classe].focus(); return false; } else { return true; } } </script> Su html.it ho letto che quello che in php è if,elseif,else in java diventa if,if,else.... però evidentemente c'è qualcosa che non va perchè non funziona..... in qualsiasi caso invia il form.......... che abbia sbagliato qualcosa nell'uso dell'operatore AND??? Grazie mille! Ciao Link al commento Condividi su altri siti Altre opzioni di condivisione...
T1T Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 l'and non è && ? www.t1t.it Il mio sito personale www.appartamentiumago.it ....casa vacanza in Croazia, ottimi i prezzi e i simpatici gestori MacBook Pro "17 Core Duo - iMac G3 Flavors 333 Mhz - 2xiBook Clamshell G3 300Mhz with airport (Tangerine&Blue) - Canon EOS 350D + 18/55 + 55/200 Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 5 Maggio 2007 Autore Segnala Condividi Inviato 5 Maggio 2007 l'and non è && ? ho provato.... nn cambia nulla Link al commento Condividi su altri siti Altre opzioni di condivisione...
T1T Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 e con un & solo? www.t1t.it Il mio sito personale www.appartamentiumago.it ....casa vacanza in Croazia, ottimi i prezzi e i simpatici gestori MacBook Pro "17 Core Duo - iMac G3 Flavors 333 Mhz - 2xiBook Clamshell G3 300Mhz with airport (Tangerine&Blue) - Canon EOS 350D + 18/55 + 55/200 Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 5 Maggio 2007 Autore Segnala Condividi Inviato 5 Maggio 2007 e con un & solo? nisba Link al commento Condividi su altri siti Altre opzioni di condivisione...
T1T Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 laserRadial_F ?? www.t1t.it Il mio sito personale www.appartamentiumago.it ....casa vacanza in Croazia, ottimi i prezzi e i simpatici gestori MacBook Pro "17 Core Duo - iMac G3 Flavors 333 Mhz - 2xiBook Clamshell G3 300Mhz with airport (Tangerine&Blue) - Canon EOS 350D + 18/55 + 55/200 Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 5 Maggio 2007 Autore Segnala Condividi Inviato 5 Maggio 2007 laserRadial_F?? è il value di una classe........... perchè? Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 5 Maggio 2007 Segnala Condividi Inviato 5 Maggio 2007 ci sono almeno due errori di sintassi javascript sicuramente hai dimenticato un "if" nel primo else infatti nel codice tu hai scritto: else (document.forms[formId].elements[sesso].value == "F" AND document.forms[formId].elements[classe].value == "laserRadial_M" ) { alert ("\n Errore! Stai tentando di iscrivere una femmina in una categoria maschile!."); document.forms[formId].elements[classe].focus(); return false; } mentre andrebbe scritto else [color="Red"]if[/color] (document.forms[formId].elements[sesso].value == "F" AND document.forms[formId].elements[classe].value == "laserRadial_M" ) { alert ("\n Errore! Stai tentando di iscrivere una femmina in una categoria maschile!."); document.forms[formId].elements[classe].focus(); return false; } il secondo errore consiste nel modo in cui identifichi il campo da esaminare nell'attributo "elements[]". infatti, se tu vuoi usare il nome diretto del campo ("sesso", "classe") e non una variabile parametrizzata (formId), all'interno delle parentesi quadre devi usare gli apici altrimenti javascript lo interpreta come una variabile non inizializzata. il codice corretto andrebbe quindi scritto come: document.forms[formId].elements[[color="Red"][b]'[/b][/color]sesso[color="red"][b]'[/b][/color]].value idem per elements[classe]: la sintassi corretta è elements['classe'] per inciso, se usi direttamente il nome dei campi non ti serve passarli come parametri nella funzione che puoi quindi semplificare in questo modo: function controlla(formId) { .... } ovviamente anche il richiamo nella form cambierà (e occhio agli apici ): <form id="datiPartecipante" onsubmit="javascript:controlla([b][color="Red"]'[/color][/b]datiPartecipante[color="red"][b]'[/b][/color])" ...> Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 6 Maggio 2007 Autore Segnala Condividi Inviato 6 Maggio 2007 Grazie mille Grigio per l'analisi accurata ma........ niente! Continua a non andare!! Siccome mi sembra al quanto scomodo leggere righe di codice tra le pagine del forum ho fatto che uploddare la pagina....... la trovate qua: http://andreabenedetti.netsons.org/magomac_problemajava.zip Grazie mille!!!!!! Ciao Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 6 Maggio 2007 Segnala Condividi Inviato 6 Maggio 2007 Ho guardato il tuo codice e ho trovato l'errore nel tuo javascript. Il punto chiave sta tutto nel modo in cui controlli il campo "sesso". Il campo sesso è di tipo Radio: vuol dire che esso o è selezionato oppure no ed è questo quello che devi controllare: per fare questo devi usare il metodo "checked". Il valore "m" o "f" che tu tenti di assegnare non viene considerato nel caso di un input di tipo radio e il metodo "value" ti ritorna sempre un valore "undefined" motivo per cui il tuo controllo dava sempre esito positivo. Per verificare quale valore è stato selezionato devi trattare il campo "sesso" come se fosse un array, in cui l'indice corrisponde alla sequenza che hai definito nell'html. In questo caso, tu hai definito per il campo radio "sesso" prima il caso M e poi il caso F: quindi con sesso[0] controlli se è stato selezionato il caso M e con sesso[1] controlli il caso F. Il codice corretto per eseguire il tuo controllo quindi è il seguente: <script type="text/javascript" language="javascript"> function controlla() { if (document.datiPartecipante.sesso[0].checked && document.datiPartecipante.classe.value == "laserRadial_F" ) { alert ("\n Errore! Stai tentando di iscrivere un maschio in una categoria femminile!"); document.datiPartecipante.classe.focus(); return false; } else if (document.datiPartecipante.sesso[1].checked && document.datiPartecipante.classe.value == "laserRadial_M" ) { alert ("\n Errore! Stai tentando di iscrivere una femmina in una categoria maschile!"); document.datiPartecipante.classe.focus(); return false; } else { return true; } } </script> Notare che, dato che tu hai una sola form da controllare, ho semplificato anche il codice di accesso alla form e ai suoi campi. Questo implica che devi modificare leggermente anche la definizione dell'onsubmit come segue: <form name="datiPartecipante" method="post" action="addpart_step2.php" onsubmit="javascript: controlla()"> Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 6 Maggio 2007 Autore Segnala Condividi Inviato 6 Maggio 2007 ok grazie adesso provo...... cmq siccome in php bastava considerare il value come se fosse un normale input pensavo fosse lo stesso qua ma evidentemente non è così...... Vado a mettere mano al codice e ti faccio sapere! Ciao! Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 6 Maggio 2007 Autore Segnala Condividi Inviato 6 Maggio 2007 Ok grande...... adesso l'errore viene!!! Resta però un problema..... premendo OK alla finestra dell'errore il form viene inviato!!!!!!!!!!!!!!! Evidentemente non vede il return false; ........... Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 7 Maggio 2007 Autore Segnala Condividi Inviato 7 Maggio 2007 Evidentemente non vede il return false; ........... non avete idee? Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 7 Maggio 2007 Segnala Condividi Inviato 7 Maggio 2007 sì: prova a modificare la chiamata ad onsubmit in questo modo: <form name="datiPartecipante" method="post" action="addpart_step2.php" onsubmit="javascript: [color="Red"]return[/color] controlla();"> Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 7 Maggio 2007 Autore Segnala Condividi Inviato 7 Maggio 2007 sì: prova a modificare la chiamata ad onsubmit in questo modo: <form name="datiPartecipante" method="post" action="addpart_step2.php" onsubmit="javascript: [color="Red"]return[/color] controlla();"> Funziona.... GRAZIE MILLE DELL'IMMENSO AIUTO CHE MI DAI SEMPRE!!!! Ciao ciao magomac Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.