Newsgroup: it.comp.lang.javascript
Titolo: Funzione js che lancia script php...

Ho una pagina con un link tipo:
<a href="Javascript: creafile(var)">lanciascript</a></strong>
la funzione a cui fa riferimento č:
function creafile(var)
{
document.write("<img style='display:none;' 
src=script.php?varPhp="+var+"'>");
alert("CHECK!");
location.href='./altrapagina.htm';
}
Quando clicco sul link "lanciascript" si apre una pagina vuota (ho nascosto 
con display:none il quadratino rosso che si formava), lo script.php viene 
richiamato, compare l'alert e, all'ok sull'alert vengo reinderizzato.
Il problema č che vorrei fare le stesse cose SENZA far aprire la pagina 
vuota. E' possibile, cioč, lanciare con quella funzione uno script.php lato 
server senza che nessuna nuova finestra venga aperta?
Grazie.

 server senza che nessuna nuova finestra venga aperta?
Ajax.
http://www.google.it/search?q=ajax
Enrico

 
http://www.google.it/search?q=ajax
Grazie per la risposta, ma sto facendo uno script per hobby a tempo 
assolutamente perso e appena finito non credo di mettere più mano a nulla di 
simile.
Questo per dirti che apprezzo il suggerimento Ajax ma puoi aiutarmi a 
restingere il campo di ricerca info dentro Ajax stesso?
Grazie. 

 restingere il campo di ricerca info dentro Ajax stesso?
Ajax non è altro che "la possibilità di lanciare una richiesta http
direttamente da js.  Quello che devi fare è semplicemente istanziare un
oggetto XMLHttpRequest, che è l'unica cosa "complicata" (perché non è
una cosa "standard" per tutti, tipo con IE va lanciato un oggetto
ActiveX). Dopodiché ti basta usare le funzioni tipo open(), send(), ecc.
Creare l'oggetto XMLHttpRequest per tutti i browser:
http://it.wikibooks.org/wiki/AJAX
Usare l'oggetto per lanciare una richiesta:
http://it.wikibooks.org/wiki/JavaScript/Usare_AJAX
Enrico

 Grazie.
Di nulla.
-- 
albaserver

 server senza che nessuna nuova finestra venga aperta?
se ho ben capito:
 a) metti nella pagina una img hidden e gli assegni un id, es. "miaImg"
 b) la tua funzione potrebbe diventare semplicemente:
   document.getElementById("miaImg").onload=function() {
    alert("check"); 
    window.location.href="tuapagina";
   }
   document.getElementById("miaImg").src="tuapagina.php";
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 Il comando infatti, ricarica comunque il documento.
Solo una precisazione: non ricarica affatto il documento. Questo 
implicherebbe contattare il server.
Semplicemente svuota il DOM e ci mette solo quella stringa, completamente 
lato client.
Bye.

   document.getElementById("miaImg").src="tuapagina.php";
Grazie a te come agli altri per la risposta.
Dunque ho provato cosě:
<a href="Javascript: test()">lancia lo script.php</a>
<img alt="" src="" id="miaImg" style="display: none" />
Con la funzione:
function test()
{
   document.getElementById("miaImg").onload=function() {
    alert("check");
    window.location.href='altrapagina.htm';
   }
   document.getElementById("miaImg").src="mioscript.php";
}
Perň non succede nulla.
Ho provato il debug con FF ma la console degli errori non segnala nulla.
Dove sbaglio?

 Dove sbaglio?
stai restituendo, dal php, una immagine qualsiasi? (altrimenti onload non
si scatena)
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
									B.M.

 si scatena)
Dovrei restituire un immagine?  Lo script da lanciare fa dei calcoli e 
basta, dovrei modificarlo? 

 basta, dovrei modificarlo?
se vuoi seguire questa semplice strada sì, altrimenti devi usare ajax come
già indicato (attenzione però ai vecchi browser che non lo supportano)
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

 <a href="#" onclick="creafile(var);return false"
Ho riletto il tuo primo messaggio, e quest link mi si era confuso con il mio 
messaggio originale.
Tutto chiaro ora.
Grazie. 


Sě hai ragione, mi sono espresso male.
-- 
albaserver