View Full Version : PHP: Self submission, onclick, onsubmit ..
Matrixbob
07-07-2004, 15:32
.. sto preparando un template php che contiene un form.
Questo form fa il self submit della pagina.php stessa x fare il cotrollo, attraverso "espressioni regolari", di errori di compilazione del form.
Ora mi chiedo:
se l'attributo action del form è occupato:
..
...
bla bla action="questa_pagina.php" bla bla
...
..
Come faccio a mandare in esecuzione un'altra pagina,
nella quale voglio fare le quary di insert in MySQL
dei dati presi dal form?!
Matrixbob
07-07-2004, 15:33
Uso onclick oppure onsubmit?!
Spero di aver spiegato quele è il problema,
plz help! ;(
Non fai prima a verificare la corretta compilazione in questa_pagina.php ? O semplicemente in un altra pagina php che poi includi in questa_pagina.php ?
Fare una cosa del genere non ti conviene perchè onsubmit da il controllo ad uno script JavaScript...e lo script JavaScript non può aprire una pagina php (senza perdere il form corrente) se non in un'altra finestra...
Matrixbob
07-07-2004, 15:43
Originariamente inviato da cionci
Non fai prima a verificare la corretta compilazione in questa_pagina.php ? O semplicemente in un altra pagina php che poi includi in questa_pagina.php ?
Cioè faccio tutto nella pagina del form, tiranto dentro parti di codici che ho scritto altrove?!
Sì...tutto nella pagina di risposta al form...
Anzi...sarebbe meglio dare come action la pagina stessa che ha generato il form... In questo modo hai già il codice per generare nuovamente il form e mettere in evidenza i campi errati...
Se tutto è ok allora includi e esegui la pagina che va a salvare i dati del form con la funzione require...
Matrixbob
07-07-2004, 16:36
Originariamente inviato da cionci
Sì...tutto nella pagina di risposta al form...
Anzi...sarebbe meglio dare come action la pagina stessa che ha generato il form... In questo modo hai già il codice per generare nuovamente il form e mettere in evidenza i campi errati...
Questo è quello che ho scritto in apertura se non sbaglio :) forse eri di fretta o forse non traspare, cmq il sapere che mi dai conferma è già qualcosa, il problema è quanto giunge dopo allora.
Originariamente inviato da cionci
Se tutto è ok allora includi e esegui la pagina che va a salvare i dati del form con la funzione require...
Guarda, tagliamo la testa al toro, la pagina è questa (http://www.mtc-clan.it/ws/regcliente.php).
Si tratta di un progetto x esame universitario.
Non è una vera vineria.
Matrixbob
07-07-2004, 16:39
Originariamente inviato da cionci Fare una cosa del genere non ti conviene perchè onsubmit da il controllo ad uno script JavaScript...e lo script JavaScript non può aprire una pagina php (senza perdere il form corrente) se non in un'altra finestra...
Cioè onclick e onsubmit non sono attributi del form?!
Sono sempre autenticati W3C?!
Va benissimo come hai fatto ;)
In caso non ci siano errori richiama la pagina php che registra i dati con require...
Poi fai un redirect alla pagina di conferma della registrazione... Fai un redirect con JavaScript o con l'header HTTP (meglio questo) per non permettere all'utente di ricaricare, anche per sbaglio, la pagina di registrazione effetuando di fatto una doppia registrazione...
Matrixbob
07-07-2004, 16:47
Originariamente inviato da cionci Fai un redirect con JavaScript o con l'header HTTP (meglio questo)
Cioè uso la function di PHP "header('Location: URL');" ?!
Questa si che dovrebbe usare l'header http vero?!
Cosa è una redirect in JS?!
Originariamente inviato da Matrixbob
Cioè onclick e onsubmit non sono attributi del form?!
Sono sempre autenticati W3C?!
Certo che sono attributi validi, ma come andresti a caricare la pagina PHP che deve controllare i dati senza perdere il form già compilato ?
Matrixbob
07-07-2004, 16:48
Originariamente inviato da cionci In caso non ci siano errori richiama la pagina php che registra i dati con require...
Non è che tutte le include dovrebbero essere delle required?!
Anche perchè mi servono che esistano tutte le pagine.php scritte x raggiungere il mio scopo.
Originariamente inviato da Matrixbob
Cioè uso la function di PHP "header('Location: URL');" ?!
Questa si che dovrebbe usare l'header http vero?!
Sì...devi inviarla prima di qualsiasi ouput ;)
Originariamente inviato da Matrixbob
Cosa è una redirect in JS?!
<script>
location.href = "tuourl.php?param1=xxx&etc=etc";
</script>
Originariamente inviato da Matrixbob
Non è che tutte le include dovrebbero essere delle required?!
Anche perchè mi servono che esistano tutte le pagine.php scritte x raggiungere il mio scopo.
Certo...se sono fondamentali metti require...
require() and include() are identical in every way except how they handle failure. include() produces a Warning while require() results in a Fatal Error. In other words, don't hesitate to use require() if you want a missing file to halt processing of the page. include() does not behave this way, the script will continue regardless.
Matrixbob
07-07-2004, 16:54
Originariamente inviato da cionci
Sì...devi inviarla prima di qualsiasi ouput ;)
Ma 6 sicuro?! Io la uso normalmente dopo aver stampato la mia barra di navigazione.
Originariamente inviato da cionci
<script>
location.href = "tuourl.php?param1=xxx&etc=etc";
</script>
E questo dove lo metterei?!
Mi fai un esempio?!
TNX.
Ovunque all'interno del tag body ;)
Meglio in ogni caso l'altro...
Comunque gli header vengono inviati al client al momento in cui fai il primo output... Quelli che metti dopo vengono ignorati...
Matrixbob
07-07-2004, 17:29
Originariamente inviato da cionci Ovunque all'interno del tag body ;)
Meglio in ogni caso l'altro...
Ok qui stai parlando del JS.
Originariamente inviato da cionci Comunque gli header vengono inviati al client al momento in cui fai il primo output... Quelli che metti dopo vengono ignorati...
Si questo è vero .. lo ha insegnato il Prof. universitario anche a me, sopratutto quando parlava di CGI/PERL e bordelli simili :)
Non è che la funzione header di php implementa qualcosa che se ne sbatte di dove si trova head o body che sia.
Magari fa un reload ... non so ...
Adesso pasticcio un po', se ho bisogno ti ricontatto ok?!
(sempre che non ti disturbo)
Grazie,
Roberto.
Ok...no problem...
Riguardo all'header...c'è anche scritto nella documentazione che va inviato prima ;)
Matrixbob
07-07-2004, 17:31
Originariamente inviato da cionci
Ovunque all'interno del tag body ;)
Meglio in ogni caso l'altro...
Comunque gli header vengono inviati al client al momento in cui fai il primo output... Quelli che metti dopo vengono ignorati...
X output tu cosa intendi?!
Codice XHTML interpretato dal browser o print di PHP?!
Matrixbob
07-07-2004, 17:32
Originariamente inviato da cionci
Ok...no problem...
Riguardo all'header...c'è anche scritto nella documentazione che va inviato prima ;)
Quindi in sostanza va nel body?!
Prima di qualunque xhtml?!
O va nell'head?!
header prima anche di <html>
Il codice JavaScript ovunque fra <body> e </body>...e verrà eseguito appena verrà raggiunto dal browser...
Se vuoi aspettare il caricamento della pagina metti il codice javascript nell'apertura del tag body nell'attributo onload...
Matrixbob
07-07-2004, 17:51
Ancora una cosa, x Output generico tu intendi l'Output del server xhtml vero?!
Quindi l'Output che intendi tu è il codice xhtml di risposta generato dal server xhml ad una richiesta dell'utente sottomessa dal browser, giusto?!
L'output è quello che generi tu con php...
Ad esempio:
<?php
...
...
echo "<html>"; //questo è un output
?>
<?php
//ma anche la riga vuota sopra <?php è un output
?>
Matrixbob
14-07-2004, 14:26
Sai mica dirmi perchè dopo il selfsubmint il pulstante "reset" del form non funziona più?! (cioè non fa niente)
E' possible ovviare a questo?!
Cioè ? Spiega meglio... Come immetti i dati nella form ?
Matrixbob
14-07-2004, 15:26
Originariamente inviato da cionci
Cioè ? Spiega meglio... Come immetti i dati nella form ?
La pagina è questa (http://www.mtc-clan.it/ws/regcliente.php), serve pezzi di codice?
Dopo la sottomissione in caso di errori di campi, il form viene ristampato con i valori corretti della volta precedente.
Se voglio risettare il form, questo non ha effetto.
Lo ha solo prima di sottomettere il form.
Appunto...i dati corretti li immetti tramite ilc ampo value dei vari input... Il reset in realtà non cancella il contenuo dei campi, ma lo setta al valore specificato dentro l'attributo value...
Matrixbob
14-07-2004, 15:34
Originariamente inviato da cionci
Appunto...i dati corretti li immetti tramite ilc ampo value dei vari input... Il reset in realtà non cancella il contenuo dei campi, ma lo setta al valore specificato dentro l'attributo value...
... ne deduco che con questa tecnica allora sia normale il mio problema e quindi probabilemtne non è un problema. Giusto?!
Grazie ancora, alla prox.
Infatti... Comunque se modifichi una di quelle righe con il reset tornerà il vlaore inzialmente impostato... Prova...
Matrixbob
14-07-2004, 16:05
Originariamente inviato da cionci
Infatti... Comunque se modifichi una di quelle righe con il reset tornerà il vlaore inzialmente impostato... Prova...
Vero, grazie della osservazione.
Adesso provo ad interfacciarmi al dbms MySQL, mi raccomando be tuned! :)
Matrixbob
21-07-2004, 16:16
Originariamente inviato da cionci
Infatti... Comunque se modifichi una di quelle righe con il reset tornerà il vlaore inzialmente impostato... Prova...
Ok cionci i consigli che mi hai dato funzionano alla grande e sono stati preziosissimi.
Ho visto in giro che certi self-submit vengono fatti richiamando se stessi con un parametro nel url tipo:
http://pizza_e_fichi.qui/mangia.php?action=process
Io invece uso un campo hidden nel form ... di norma cosa è meglio?!
Si parla entrambe di selfsubmit vero?!
Grazie, tra poco apro un'altro 3D ... porta pazienza capo ;)
Originariamente inviato da Matrixbob
http://pizza_e_fichi.qui/mangia.php?action=process
Io invece uso un campo hidden nel form ... di norma cosa è meglio?!
Si parla entrambe di selfsubmit vero?!
E' la stessa cosa ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.