par
VaN » 23 avr. 2008, 23:44
1. Est-ce que ça ne serait pas possible d'écrire ces fonctions en JS ?
2. Si ce n'est pas possible, il faut effectivement passer par de l'AJAX.
l'AJAX, c'est juste une combinaison de Javascript et de PHP. Le Javascript va demander au serveur d'effectuer certaines actions, le serveur renvoie une réponse, et JS l'interprète.
a. D'abord t'assurer que ta fonction XMLHttpRequest est correcte.
Pour ma part, j'utilise celle-ci, qui fonctionne parfaitement :
Code : Tout sélectionner
function creerXHR(url) {
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr_object.open("GET", url, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) {
//alert('data : '+xhr_object.responseText);
return(xhr_object.responseText);
}
else {
//alert("ca passe pas");
return(false);
}
}
Je fais me baser sur celle ci pour la suite :
b. D'abord, affecter tes 2 functions Javascript, qui vont lancer les fonctions PHP en Ajax, sur le onclick, on leur founissant les valeurs correctement :
Code : Tout sélectionner
<input type="button" name="calcul" onClick="calcul_TVA_Total(); aff_tva('-1', '<?php echo $sens; ?>')" />
c.et le script JS :
Code : Tout sélectionner
function calcul_TVA_Total() {
retourJS = creerXHR('ajax.php?action=calculTVATotal);
// Tu te retrouves avec le résultat de ta fonction PHP contenue dans ajax.php qui va se lancer si le test ($_GET['action'] == 'calculTVATotal') est vrai
}
d.et le fichier ajax.php
if($_GET['action'] == 'calculTVATotal') {
// là tu fais tout tes calculs comme il faut
$TVATotal = ... ;
echo $TVATotal;
}
Avec ça, tu récupère normalement dans la variable Javascript "retourJS" la valeur de $TVATotal. à toi ensuite d'en faire ce que tu veux, dans la suite de ta fonction javascript calcul_TVA_Total().
c. bis Et suffit de refaire pareil pour l'autre fonction, en fournissant les 2 variables au fichier ajax.php :
Code : Tout sélectionner
functionaff_tva(valeur, sens) {
retourJS2 = creerXHR('ajax.php?action=aff_tva&valeur='+valeur+'&sens='+sens);
}
d. bis Et récupérer ces variables avec un _GET[''], dans le fichier ajax : )
1. Est-ce que ça ne serait pas possible d'écrire ces fonctions en JS ?
2. Si ce n'est pas possible, il faut effectivement passer par de l'AJAX.
l'AJAX, c'est juste une combinaison de Javascript et de PHP. Le Javascript va demander au serveur d'effectuer certaines actions, le serveur renvoie une réponse, et JS l'interprète.
[b]a.[/b] D'abord t'assurer que ta fonction XMLHttpRequest est correcte.
Pour ma part, j'utilise celle-ci, qui fonctionne parfaitement :
[code]function creerXHR(url) {
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr_object.open("GET", url, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) {
//alert('data : '+xhr_object.responseText);
return(xhr_object.responseText);
}
else {
//alert("ca passe pas");
return(false);
}
}[/code]
Je fais me baser sur celle ci pour la suite :
[b]b.[/b] D'abord, affecter tes 2 functions Javascript, qui vont lancer les fonctions PHP en Ajax, sur le onclick, on leur founissant les valeurs correctement :
[code]<input type="button" name="calcul" onClick="calcul_TVA_Total(); aff_tva('-1', '<?php echo $sens; ?>')" />[/code]
[b]c.[/b]et le script JS :
[code]function calcul_TVA_Total() {
retourJS = creerXHR('ajax.php?action=calculTVATotal);
// Tu te retrouves avec le résultat de ta fonction PHP contenue dans ajax.php qui va se lancer si le test ($_GET['action'] == 'calculTVATotal') est vrai
}[/code]
[b]d.[/b]et le fichier ajax.php
[php]if($_GET['action'] == 'calculTVATotal') {
// là tu fais tout tes calculs comme il faut
$TVATotal = ... ;
echo $TVATotal;
}[/php]
Avec ça, tu récupère normalement dans la variable Javascript "retourJS" la valeur de $TVATotal. à toi ensuite d'en faire ce que tu veux, dans la suite de ta fonction javascript calcul_TVA_Total().
[b]c. bis[/b] Et suffit de refaire pareil pour l'autre fonction, en fournissant les 2 variables au fichier ajax.php :
[code]functionaff_tva(valeur, sens) {
retourJS2 = creerXHR('ajax.php?action=aff_tva&valeur='+valeur+'&sens='+sens);
}[/code]
[b]d. bis[/b] Et récupérer ces variables avec un _GET[''], dans le fichier ajax : )