Newsgroup: it.comp.www.php
Titolo: php e javascript

ciao, buon natale innanzitutto
forse e' una domanda Ot, vorrei sapere se esiste una funzione javascript che
permette di leggere le variabili di sessione dichiarate con il php
senza utilizzare cookie e senza necessariamente inviare questi dati tramite
form ad un altro php,
si tratta di aggiornare
il valore di una variabile di sessione chiamata $p1
in base al valore di una casella di testo (document.form1.testo.value)
subito dopo che si e' verificato l'evento onblur della casella stessa.
spero sia chiaro.
ciao

-- cut --
In questo modo generi codice Javascript capace di assegnare al valore di 
una variabile campo il contenuto di una variabile PHP.
Però per quanto riguarda l'evento onblur... la cosa mi lascia un pò 
scettico perché PHP lavora cmq lato server e non ho considerato come 
possa "rendersi conto" di un evento client-side come onblur...
Boh, devo pensarci.
Beh, spero di averti almeno indirizzato. :-)
Alla prossima. :-)
 bye


 Alla prossima. :-)
il problema rimane perche' credo sia impossibile richiamare una funzione php
da uno  javascript
ho provato con il document.write ma il browser rimane un po' perplesso di
fronte all'eventualita' di scrivere una pagina
php nuova, quindi il codice php nn viene elaborato.
 per adesso l'unica soluzione che ho trovato consiste nel caricare una
funzione pippo() dall'evento oblur
function pippo() {
aaa=document.modulo.testo.value;
 window.open("valori.php?"+aaa,"loc","width=5,height=5");
}
in modo che questa funzione apra in una finestra che contiene un documento
ad esempio prova.php a cui viene passato come query
il valore della casella e tramite un js si chiuda automaticamente
<? session_start();
istruzioni che elaborano la query ed aggiornano la variabile
 ?>
<html>
<body>
<script language=javascript>
 window.close();
</script>
</body>
</html>
piu' di cosi' non so se si puo' fare, a meno che dato che il php invia i
dati di sessione via url non si possa leggerli tramite script, ma non ho
trovto soluzioni. E' una
teoria errata ?
ciao!


[CUT]
La cosa non si può fare direttamente. Si può ricorrere ad un piccolo
artificio.
Il concetto è che PHP "funziona" al momento di caricare la pagina e dopo si
ferma. JS funziona durante il carimento e anche dopo. Farli parlare, nello
specifico passare variabili è un po' complicato. Per passare una variabile
PHP a JS, tutto sommato, però,  è semplice: basta generare dinamicamente uno
script JS.
<SCRIPT language="JavaScript1.2">
<!--
    var varJS = <? echo " \"$varPHP\" "; ?>;
// -->
</SCRIPT>
Il contrario, che è poi quello che vorresti fare è più complicato.
Devi crearti un frame invisibile (puoi farlo anche con IFRAME) che carica
una pagina PHP. Quando avviene l'evento che ti serve (onBlur) forzi il
caricamento del frame con una variabile passata in modo GET. La variabile
passata sarà ovviamente quella JS ed all'interno della pagina PHP caricata
nel frame ci sarà il codice per "registrarla" nella sessione.
Provo a scrivere un po' di codice, ma all'impronta, quindi sicuramente pieno
di errori:
-- FRAMESET --
<HTML>
<FRAMESET rows="*,0">
<FRAME name="main" src="home.php">
<FRAME name="invis" src="frame.php">
</FRAMESET>
</HTML>
-- PAGINA frame.php --
<?
session_start();
if ($varJS) {
    session_register("var_sess");
    $var_sess = $varJS;
}
?>
-- PAGINA home.php --
<HTML>
<HEAD>
<SCRIPT language="JavaScript1.2">
<!--
    // varJS gliela passi tu e la prendi da dove vuoi
    function attivaonblur(varJS) {
        parent.invis.location = "frame.php?varJS="+varJS;
    }
// -->
</SCRIPT>
<BODY>
<FORM name="form1">
<INPUT type="text" name="nome"><BR>
<! la faccio funzionare premendo un pulsante per semplicità >
<INPUT type="button" value="Registra"
onClick="attivaonblur(document.forms[0].nome.value);">
</FORM>
</BODY>
</HTML>
Beh, prova e incrocia le dita.
Bye
giaconet

 ha scritto nel messaggio
news:a0b38l$k05o0$1...@ID-71483.news.dfncis.de...
cut

si,ci avevo pensato, ma i frme mi incasinano tutto, cmq faro' proprio come
dici anche se dovro' cambiare una marea di script
ps:funziona...
ciao