View Full Version : [PHP] con JavaScript...?
Salve,
non é la prima volta che riscontro questo problema...in un IF di Javascript devo inserire php... Ho provato così:
<?php
echo "
<script language=JavaScript>
if(confirm('Vuoi inserire il tuo nome nel database?'))
{
";
$db->query("INSERT INTO...");
echo "
}
</script>";
?>
non funziona ovviamente... come posso fare?
e continuerai a trovarlo fintanto che mescolerai JS e php ;)
php viene interpretato dal server, mentre JS dal client..in pratica al tuo browser arriva qualcosa del tipo:
<script language=JavaScript>
if(confirm('Vuoi inserire il tuo nome nel database?'))
{
}
</script>";
perché l'interprete php ha già provveduto ad eseguire gli echo e ad assegnare la variabile $query..ma di questo JS non ne sa nulla :)
puoi piuttosto provare una cosa del genere:
<script language=JavaScript>
if(confirm('Vuoi inserire il tuo nome nel database?'))
window.location(<path_dello_script_che_esegue_la_query>);
</script>";
la pagina php sarà qualcosa del tipo:
<apertura connessione>
<creazione query>
<sottomissione query>
<chiusura connessione>
header("Location:<pagina dove ritornare>")
se non conosci bene la funzione header di php documentati al sito ufficiale di php perché è potentissima e non permette solo semplici redirect come questo ;)
Ok, grazie mille... provo subito ;)
Non capisco comqunue cos'abbia di così potente la funzione header...
Non capisco comqunue cos'abbia di così potente la funzione header...Ti permette di aggiungere degli header HTTP nel response fornito dal web server!!
Una possibilità, molto usata, è far fare, a livello di HTTP, un redirect al browser con:
header("Location: http://.....");
oppure far fare autenticazioni HTTP, ad esempio.
invia headers http :)
poi se a te non serve è un'altra questione ;)
Xalexalex
13-08-2006, 19:20
Scusate se mi intrometto... Qualcuno ha una guida, o una sorta di lista degli headers che possono essere trasmessi?
Io conosco quelli per il redirect, per l'auth HTTP, per i download dei vari tipi di files, però suppongo ce ne siano molti altri.
Grazie,
ciaozz
buon divertimento (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) ;)
Qualcuno ha una guida, o una sorta di lista degli headers che possono essere trasmessi?
Io conosco quelli per il redirect, per l'auth HTTP, per i download dei vari tipi di files, però suppongo ce ne siano molti altri.Ecco dei link: [1] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) [2] (http://www.cs.tut.fi/~jkorpela/http.html)
il primo dei due è lo stesso che gli ho dato io :)
w3 rulez :ave:
il primo dei due è lo stesso che gli ho dato io :)
w3 rulez :ave:Ops .... non avevo visto che quello che hai scritto è un link ... :doh: :doh: non ho l'abitudine di passare il cursore dappertutto :p
Xalexalex
13-08-2006, 19:56
Grazie a entrambi, andbin ottimamente disponibile come sempre, dovrebber farti mod di sezione ^^.
Ciaozz
già in effetti forse non era proprio chiaro :D :D
Xalexalex
13-08-2006, 19:58
il primo dei due è lo stesso che gli ho dato io :)
w3 rulez :ave:
E il secondo è una serie di link alla prima pagina :asd:
E il secondo è una serie di link alla prima pagina :asd:Già ... è vero. :doh: Chiedo scusa x i link poco utili.
Xalexalex
13-08-2006, 20:08
Già ... è vero. :doh: Chiedo scusa x i link poco utili.
Eeeefigurati :D
Ma in pratica se cerco standards, references etc cerco su w3.org ?
quando devi cercare qualsiasi cosa che riguardi come il web dovrebbe crescere vai a vedere li ;)
compresi linguaggi come xml, soap, rdf, javascript, ecc.. (la guida a javascript del w3 è libidinosa..con tutto il DOM descritto bene e farcito di esempi.. :)
saluto e ringrazio l'unico suo componente che conosco: il mio illustre professor Massimo Marchiori dell'università di Venezia :ave: :ave: :ave: :ave:
ritiro in ballo il thread perchè volevo cercare con voi una soluzione per usare il popup di conferma Javascript per condizionare l'esecuzione di codice php..
if(!$conferma_ok){
?><script>
if(window.confirm('Vuoi confermare?')){
<? setcookie ("confermato","1", time()+1200);
$conferma_ok=1;
?>
}
</script>
<?php
}
Che però non funziona in quanto se premo 'Cancel' sul popup javascript, mi esegue ugualmente il codice PHP.. se do ok, ovviamente funziona :D
Consigli?
P.S. non posso fare refresh della pagina, dunque nessun redirect!
if(!$conferma_ok){
?><script>
if(window.confirm('Vuoi confermare?')){
<? setcookie ("confermato","1", time()+1200);
$conferma_ok=1;
?>
}
</script>
<?php
}No, siamo sempre daccapo: PHP è lato server mentre Javascript è lato client.
Ammesso che all'inizio, $conferma_ok valga false, si entra allora nel blocco if.
Quindi poi quel blocco di codice php dove c'è setcookie viene eseguito dal PHP. E quando la pagina arriva al browser, il codice Javascript è come se fosse scritto:
<script>
if(window.confirm('Vuoi confermare?')){
}
</script>
Quindi un blocco if ... vuoto!
in questo stesso post avevo già scritto ;)
e continuerai a trovarlo fintanto che mescolerai JS e php
php viene interpretato dal server, mentre JS dal client
in pratica cosa succede..
if(!$conferma_ok){
qui l'interprete php testa la variabile che se non inizializzata varrà 0 perciò entra nell'if
<script>
if(window.confirm('Vuoi confermare?')){
<? setcookie ("confermato","1", time()+1200);
$conferma_ok=1;
?>
}
</script>
visto che nell'if c'è entrato tutto questo viene schiaffato nella pagina html e a php non interessa cosa c'è dentro..poi però dentro allo script c'è un'altra istruzione di elaborazione php, che viene interpretata a prescindere dall'if del js che verrà interpretato poi, quindi per php potrebbe esserci scritta qualsiasi cosa..
raga, non dovete dimenticare la differenza tra server side e client side :)
per risolvere il tuo problema potresti ad es. inviare una pagina con il solo JS che in base alla scelta richiama 2 differenti pagine php, e poi magari la scelta te la metti in sessione :cool:
@andbin..
scusa non volevo riscrivere quello che hai scritto tu è che abbiamo risposto quasi contemporaneamente :D
Ok ragazzi.. ho capito perfettamente.. so bene che non si può assegnare il valore di una variabile javascript ad una var. php (il viceverso si..) , ma non ho pensato che pure i blocchi decisionali venissero elaborati in questo modo...
Il problema è che non voglio fare refresh della pagina.. mi sa che è dura!!
ma i popup in php non ci sono???
Ciao
ma i popup in php non ci sono???Ma un popup lo vedi sul PC "client" nel browser. ;) ;)
@andbin..
scusa non volevo riscrivere quello che hai scritto tu è che abbiamo risposto quasi contemporaneamente :DNo problem ... hai spiegato anche tu a dovere la questione.
Ma un popup lo vedi sul PC "client" nel browser. ;) ;)
:cry:
thx
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.