Newsgroup: it.comp.www.php
Titolo: Passaggio di parametri: javascript->php

Ho la necessità di passare il valore di un paio di variabili da
javascript a uno script php: come si può fare?
 
Ho cercato e qualcuno consiglia ajax (ma non volevo usarlo) e altri
dicono si può fare con un semplice:
 
window.location.href = "
http://www.kensan.it/script.php?voti=
" +
data.scores + "&link_art=" + URL;
 
però quest'ultimo non lascia inalterata la pagina html ma sembra
ricarichi la pagina e a me non va bene, in quanto lo script php vorrei
fosse eseguito senza avere nessuna influenza su ciò che che vede
l'utente. C'è una soluzione semplice?
 
P.S. Se il caso chiederà nel ng www.html ma qui mi sembra ci siano
persone più esperte ;)
 
-- 
Sandro kensan 
www.kensan.it
 & 
www.qiqi.it
 geek site
Saluto gli agenti della NSA - Hello NSA - 
www.nsa.gov
 

 
 
Ajax: perché dici che è difficile? Se usi un framework tipo jQuery è una
riga di comando..
 
Ciao!

 riga di comando..
 
Si ma ho notato che caricare jquery comporta dei tempi che in alcuni
casi rallentano i tempi di visualizzazione delle pagine anche di 1 secondo.


C'è una soluzione semplice?
 
AJAX.
 
Altrimenti, chi lo sa?, papassi come questo:
 
<img id="go" src="connect.php?cmd=null" />
 
document.getElementById("go").src = "connect.php?voti=" + 1;
 
Con l'opportuno CSS perché l'IMG sia visibile ma, diciamo, larga e alta
un solo pixel. Lo script connect.php invia in risposta un PNG di 1x1px,
trasparente.
 
Leonardo
 
-- 
A stultis ex omnibus gentium varie pictis
A sanctae fidei adeptis, ab eorum odore;
AB insanis Iacobinis, ab eorum ardore
AB idolatris et martyribus odii et terroris;
A paradisi fautoribus dicentibus "est pro amore",
A manichaeis ululantibus "Nisi nobiscum prodes";
LIBERA, libera, libera, libera nos, Domine.

 trasparente.
 
è proprio un papassi questo metodo alternativo ;) Ci penserò...
 
Grazie.


 
 
Dio mi perdoni per quello che sto per dire, però:
- carica da un CDN, ci sono alte probabilità che jQuery sia già in cache
- jquery.min è meno di 100K, come un'immagine di medie dimensioni
 
Se la devi caricare per una cosa singola e scema lascia perdere, ma se proprio
ti serve, usarla poi per tante altre cose è sensato.
 
Ciao!

casi rallentano i tempi di visualizzazione delle pagine anche di 1 secondo.
 
La butto li':
 
https://code.google.com/p/microajax/
 
 
Leonardo senza garanzie di sorta


 Leonardo senza garanzie di sorta
 
sono pochissimi byte, li posso includere:
 
function microAjax(B,A){this.bindFunction=function(E,D){return
function(){return
E.apply(D,[D])}};this.stateChange=function(D){if(this.request.readyState==4){this.callbackFunction(this.request.responseText)}};this.getRequest=function(){if(window.ActiveXObject){return
new
ActiveXObject("Microsoft.XMLHTTP")}else{if(window.XMLHttpRequest){return
new XMLHttpRequest()}}return
false};this.postBody=(arguments[2]||"");this.callbackFunction=A;this.url=B;this.request=this.getRequest();if(this.request){var
C=this.request;C.onreadystatechange=this.bindFunction(this.stateChange,this);if(this.postBody!==""){C.open("POST",B,true);C.setRequestHeader("X-Requested-With","XMLHttpRequest");C.setRequestHeader("Content-type","application/x-www-form-urlencoded");C.setRequestHeader("Connection","close")}else{C.open("GET",B,true)}C.send(this.postBody)}};
 
...ma di cosa si tratta?


 
 
Si tratta di leggere la descrizione o, ancora meglio, visto che il codice non
compresso è 65 righe, il "sorgente".
 
Fa quello che tu ritieni difficile :/
 
Ciao!

 compresso è 65 righe, il "sorgente".
 
Sto cercando con google di capire come si usa e di cosa si tratta, se
fosse scritto in php ci capirei qualche cosa ma il js non lo mastico per
nulla.


 Leonardo senza garanzie di sorta
 
Ho visto questo esempio ma non mi si accende la lampadina...:(
 
http://www.javascriptoo.com/Microajax
 


 nulla.
 
Se non sai nulla di JS è complicato spiegarlo, ma in due parole:
 
Javascript è asincrono. Significa che alcune cose possono succedere dopo 
un tempo indeterminato. È il caso di AJAX: tu chiami una funzione (un 
metodo di un oggetto nel caso particolare) che fa qualcosa in background 
e dopo un po' ha bisogno di darti il risultato.
 
Questo lo fai con le callback: registri delle funzioni (una per il 
successo e una per l'errore di connessione, di solito) che verranno 
eseguite quando la connessione sarà completata.
 
Detto in jQuery:
 
$.ajax({
 url: '
http://server/script.php
',
 data: {a: 5},
 success: function(data) { console.log(data); },
 error: function(err) { console.log(err); }
});
 
Fa una connessione nascosta a script.php, passandogli il parametro a=5.
Quando la connessione è terminata, chiama la prima funzione se ha avuto 
successo (codice HTTP 200, o 201, 202, ecc.) e la seconda se c'è stato un 
errore (codice diverso da 2xx).
 
Se jQuery è troppo grosso, usa zepto (
http://zeptojs.com/
) che sono meno 
di 10 Kb minificati e gzippati, e ha la stessa sintassi.
 
Fidati che comunque poi ti serviranno per farci qualcosa col valore di 
ritorno: vorrai aggiornare un div o un campo di un form, immagino, ma 
anche solo andare a prendere quel valore da qualche parte nell'HTML è 
molto più semplice con jQuery o Zepto che a mano con tutte le magagne dei 
browser.
 
Bye.

 
http://www.javascriptoo.com/Microajax
 
 
Ecco leggendo a destra e a manca mi pare possa essere usato così:
 
microAjax("/application/html/testphp/test.php?par=5&par1=ciao", function
(resp) {
      document.getElementById('results').innerHTML = resp
    });
 
Farò degli esperimenti. grazie, se funziona mi pare faccia al caso mio.


 
 
Secondo me me lo fate apposta.
65 righe.
Non devi cercare su google, lo devi leggere.
 
Ciao!

Grazie Alessandro,
ho capito abbastanza bene la tua spiegazione e infatti noto che anche
nel metodo (si chiama così?) che risolve il mio problema, cioè
microAjax, il funzionamento è asincrono.
 
Poi, in effetti microajax alla fine della connessione prende il
risultato della pagine web (php nel mio caso) e lo da in pasto a una
funzione, un po' come hai descritto tu con Ajax e le due funzioni di
successo (2xx) e insuccesso (!=2xx).
 
Ho fatto degli esperimenti e mi funziona benissimo. Per quanto riguarda
jQuery mi sto dando tempo, per adesso mi piace fare tutto lato server in
quanto è molto più veloce, lo so fare, non ha problemi di privacy e
posso avere molte statistiche sul mio sito web.
 
Quel che mi piace meno di js è che richiede accesso (spesso) a siti
terzi compromettendo la privacy dell'utente.
 
In conclusione ho risolto, grazie a tutti i partecipanti al topic e alla
loro estrema competenza e gentilezza nell'aiutare una zeppa come me ;)


 terzi compromettendo la privacy dell'utente.
 
Questo non è vero, anzi.
 
Javascript ha delle limitazioni molto strette per l'interazione con altri 
siti. Devi scaricare uno script da un certo sito perché quello script 
abbia accesso a quel sito, quindi sei tu che hai fatto l'HTML a doverlo 
permettere.
 
Per esempio: devi scaricare ga.js dal sito di Google Analytics perché 
possa trasmettere le informazioni.
 
Per questo non uso le CDN. :)
 
Tra l'altro capire come funziona ti fa anche capire come evitare 
injection, per esempio quando permetti agli utenti di commentare in una 
pagina PHP.
 
Bye.
 
 

 Poi potrai iniziare a sbizzarrirti con AJAX. :)
 
Mi sto dilettando con un po' di tutto quello che hai nominato e copiando
parecchio:
 
http://www.kensan.it/articoli/Vincitore_della_seconda_guerra_mondiale.php
 
 
se guardi a circa fondo pagina dove ci sono i pulsantoni quadrati dei
social network vedrai l'ultimo pulsante con la faccia di insetto
(TzeTze) e tutta l'animazione è realizzata con js con in più microajax
consigliato da Serni.
 
Diciamo che la cosa è carina :)
