Au cas où tu serais encore dans le pétrin après si longtemps...
C'est relativement simple mais il faut tout d'abord saisir ceci :
Javascript = client-side running
PHP = server-side running
Dans cette optique, lorsque la page se charge, PHP génère du code (dynamiquement) qui deviendra statique une fois rendu chez le client. Il s'agit ici de HTML généré... Une fois tout cela rendu dans le navigateur du "client" (visiteur), javascript se met en route et peut ainsi procéder indépendemment du serveur. Donc pour échanger entre les 2 ordinateurs (le serveur et le client), il faut appeler une page du serveur qui effectuera le travail voulu. Comprenant bien cela, tout ce qui peut être fait sur la machine client en Javascript devrait l'être afin de se simplifier la vie... Sinon, voicvi ce que tu peux faire :
Tu auras besoin :
AJAX (prototype.js dans l'exemple suivant)
var parametres = { 'param_1' : 'valeur_1', 'param_2' : 2 };demander_au_serveur = function(page, parametres) {
new Ajax.Request(page, {params: parametres, method: 'post', onComplete: page_recue});
}
page_recue = function(xhr, json) {
// si on renvoie une seule réponse à partir du PHP
var reception = xhr.transport.responseText;
alert(reception);
// si on prévoit recevoir un objet comme celui envoyé en paramètres
// alors, json.reponse_1 contiendra "Bla bla"
alert(json.reponse_1); // ou alert(json['reponse_1']);
}
Et dans PHP, on traite de cette façon :
<?
$parametres = $_POST;
// $parametres['param_1'] contient "valeur_1";
// ici on traite ce qu'on veut faire avec ces parametres
// Et soit on imprime ce qu'on veut retourner
echo 'Bla bla ' . $parametres['valeur_1'] . "\n<br/>\n";
// Ou bien on retourne des valeurs sous forme JSON
$ARRAY_ASSOCIATIF = array( 'reponse_1' =>'Bla bla', 'erreurs' => 0);
header('Content-Type: text/html; charset=iso-8859-1'); // spécifier le bon encodage ici !!!
header('X-JSON',json_encode($ARRAY_ASSOCIATIF));
?>
SI c'est pas clair, je tenterai d'éclaircir ça comme je peux...