Ajax php pour histogramme
Résolu
tonio2807
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
tonio2807 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
tonio2807 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Ajax php pour histogramme
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Histogramme excel - Guide
- Php alert - Forum PHP
- Retour à la ligne php ✓ - Forum PHP
9 réponses
Salut !
Pour récupérer ce que tu fais coté php après un appel AJAX, tout ce passe dans la fonction callback. Je ne travaille pas avec prototype pour l'aJax donc je ne sais pas, mais dans tous les framework ajax tu as un callback ou tu récupères tous les echo du code php.
Pour récupérer ce que tu fais coté php après un appel AJAX, tout ce passe dans la fonction callback. Je ne travaille pas avec prototype pour l'aJax donc je ne sais pas, mais dans tous les framework ajax tu as un callback ou tu récupères tous les echo du code php.
salut jeremy,
D'abord merci pour ta réponse! Il est vrai que j'avais déjà vu dans quelques tutorial l'existence de ce callback! Ensuite j'ai réalisé la même chose sans le prototype.js qui marche tout aussi bien!Donc si tu as quelques conseil à me donner pour récupérer les echo du code php je suis preneur!! Dans tous les cas je vais me pencher sur ce callback!! merci pour la piste en tout cas!!
D'abord merci pour ta réponse! Il est vrai que j'avais déjà vu dans quelques tutorial l'existence de ce callback! Ensuite j'ai réalisé la même chose sans le prototype.js qui marche tout aussi bien!Donc si tu as quelques conseil à me donner pour récupérer les echo du code php je suis preneur!! Dans tous les cas je vais me pencher sur ce callback!! merci pour la piste en tout cas!!
Ici tu le vois : http://prototypejs.org/learn/introduction-to-ajax.html
new Ajax.Request('/some_url', {
method:'get',
onSuccess: function(transport) {
var response = transport.responseText || "no response text";
alert("Success! \n\n" + response);
},
onFailure: function() { alert('Something went wrong...'); }
});
Le callback est la fonction appelée lors du onSuccess.
Si par exemple dans ton code php, tu fais un echo "bonjour";
Et bah le bonjour serra contenu dans la variable transport.responseText
new Ajax.Request('/some_url', {
method:'get',
onSuccess: function(transport) {
var response = transport.responseText || "no response text";
alert("Success! \n\n" + response);
},
onFailure: function() { alert('Something went wrong...'); }
});
Le callback est la fonction appelée lors du onSuccess.
Si par exemple dans ton code php, tu fais un echo "bonjour";
Et bah le bonjour serra contenu dans la variable transport.responseText
Salut jeremy,
En réfléchissant un petit moment je me suis rendu compte que mon problème est de récupérer dans une page A une partie html d'une page B qui contiendrait un script javascript et tout ça via Ajax.
J'ai pu lire à ce sujet que le js ne sera pas interprété dans le html retourné et qu'il faut l'extraire de la réponse et l'évaluer.
Je pense donc que je devrais partir sur cette voie. Qu'est ce que tu en penses?
En réfléchissant un petit moment je me suis rendu compte que mon problème est de récupérer dans une page A une partie html d'une page B qui contiendrait un script javascript et tout ça via Ajax.
J'ai pu lire à ce sujet que le js ne sera pas interprété dans le html retourné et qu'il faut l'extraire de la réponse et l'évaluer.
Je pense donc que je devrais partir sur cette voie. Qu'est ce que tu en penses?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai pas spécialement compris ce que tu veux récupéré : du html ou du javascript ?
Dans le premier cas tu a juste à l'incorporé dans ta page où tu veux, dans l'autre il faut faire un eval(script); où script est du code js dans un string.
Dans le premier cas tu a juste à l'incorporé dans ta page où tu veux, dans l'autre il faut faire un eval(script); où script est du code js dans un string.
ce que je veux récupérer c'est ça :
<script>
window.onload = function ()
{
var jArray= <?php echo json_encode($tableau, JSON_NUMERIC_CHECK); ?>;
var data = [jArray[0],jArray[1],jArray[2],jArray[3],jArray[4],jArray[5],jArray[6],jArray[7],jArray[8],jArray[9],jArray[10],jArray[11],jArray[12],jArray[13],jArray[14],jArray[15],jArray[16],jArray[17],jArray[18],jArray[19],jArray[20],jArray[21],jArray[22],jArray[23]];
var bar = new RGraph.Bar('cvs', data);
bar.Set('labels', ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23']);
bar.Set('labels.above', true);
bar.Draw();
}
</script>
la fonction "window.onload = function ()" est une fonction toute faite d'une librairie.
"$tableau" renvoie toute les données d'une colonne d'une table de ma BDD => code qui permet d'avoir $tableau.
<?php
$tableau = array(24);
$reponse = $bdd -> query('SELECT * FROM visu_aux_th');
while ($donnees = $reponse -> fetch())
{
$tableau[$donnees['id_visu_th_aux']] = $donnees['conso_visu_th_aux'];
}
$reponse -> closeCursor();
?>
et "data" sont les valeurs que va prendre mon histogramme pour créer les différentes bars.
<script>
window.onload = function ()
{
var jArray= <?php echo json_encode($tableau, JSON_NUMERIC_CHECK); ?>;
var data = [jArray[0],jArray[1],jArray[2],jArray[3],jArray[4],jArray[5],jArray[6],jArray[7],jArray[8],jArray[9],jArray[10],jArray[11],jArray[12],jArray[13],jArray[14],jArray[15],jArray[16],jArray[17],jArray[18],jArray[19],jArray[20],jArray[21],jArray[22],jArray[23]];
var bar = new RGraph.Bar('cvs', data);
bar.Set('labels', ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23']);
bar.Set('labels.above', true);
bar.Draw();
}
</script>
la fonction "window.onload = function ()" est une fonction toute faite d'une librairie.
"$tableau" renvoie toute les données d'une colonne d'une table de ma BDD => code qui permet d'avoir $tableau.
<?php
$tableau = array(24);
$reponse = $bdd -> query('SELECT * FROM visu_aux_th');
while ($donnees = $reponse -> fetch())
{
$tableau[$donnees['id_visu_th_aux']] = $donnees['conso_visu_th_aux'];
}
$reponse -> closeCursor();
?>
et "data" sont les valeurs que va prendre mon histogramme pour créer les différentes bars.
Concrètement, AJAX (l'objet XMLHttpRequest qui te renvois responseText) peut te renvoyer de tout (niveau format de données récupéré) ! Mais il serra stocké dans un string. Il faut donc que tu saches ce que tu envois, et que tu saches l'interprété.
Ton histogramme se charge quand tu arrives sur la page non ? Pourquoi ne pas simplement rechargé la page pour actualiser ton histogramme ?
Ton histogramme se charge quand tu arrives sur la page non ? Pourquoi ne pas simplement rechargé la page pour actualiser ton histogramme ?