Essayer de charger des cartes Google via un appel ajax (jQuery)

Dupliquer possible:
Essayer de charger des cartes Google via un appel jQuery ajax

J’y ai passé toute la journée et je ne peux pas trouver un moyen de faire en sorte que cela fonctionne. Je ne suis pas très familier avec jQuery.

Ce que j’essaie de faire: j’essaie d’écrire une fonction de sondage qui charge les résultats et les affiche dans la même page sans actualisation.

Jusqu’à présent, j’ai ce code jQuery:

$("#post_yes").click(function(){ $("#result").html(ajax_load); //loads ajaxloader.gif $.post( "query.php", {answer: "yes", poll_id: 5}, function(responseText){ $.getScript(scriptUrl, function(){ $("#result").html(responseText); }); }, "html" ); }); 

Il est supposé interroger query.php et insérer le vote dans la firebase database. Ensuite, j’ai codé query.php pour renvoyer la quantité de valeurs oui et non, puis générer un graphique sur cette page. C’est quelque chose comme ça que j’ai:

  google.load('visualization', '1.0', {'packages':['corechart']}); // Load the Visualization API and the piechart package. google.setOnLoadCallback(drawChart); // Set a callback to run when the Google Visualization API is loaded. function drawChart() { // Create the data table. var data = new google.visualization.DataTable(); data.addColumn('ssortingng', 'Answers'); data.addColumn('number', 'Number'); data.addRows([ ['Yes', $yes_value], ['No', $no_value], ]); // Set chart options var options = { 'title' :'Do you Like my smile?', 'colors' :['#f25a5a','#5aa5f2'], 'fontName' :'Verdana', 'backgroundColor' :'#e7e7e7', 'chartArea' :{left:0,top:10,width:"400",height:"400"}, 'is3D' : true, }; var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, options); } 

Après avoir débogué la page pendant un certain temps en utilisant le débogueur de chrome, j’ai remarqué que le code javascript de query.php ne s’exécutait pas dans la page d’origine, ce qui explique l’absence d’affichage du graphique.

Ma question à vous, gourous, est-ce que je peux montrer le graphique depuis query.php? Ou puis-je afficher le graphique après qu’un utilisateur ait voté (y compris les données qu’il a soumises)? Quelle autre approche puis-je adopter?

Bien que je ne maîsortingse pas très bien JavaScript / JQuery, je serai probablement capable de suivre n’importe quel code (ou même un pseudo-code, tout ce qui peut m’aider!) Que vous donnez.

rendre votre bouton désactivé par défaut

chargez Google API dans votre fichier js, activez votre bouton lors du rappel

 // Set a callback to run when the Google Visualization API is loaded. google.setOnLoadCallback(function(){ $("#post_yes").removeAttr('disabled'); }); 

déplacez la fonction drawChart dans votre fichier js, ajoutez un paramètre ‘rows’

 function drawChart(rows) { ... data.addRows(rows); ... } 

dans le fichier php construire les lignes nécessaires et les retourner (comme json valide)

sur btn click, postez vos données, en cas de rappel, appelez la fonction drawChart et transmettez-lui les lignes renvoyées.

 $.post( "query.php", {answer: "yes", poll_id: 5}, function(response){ drawChart(response); } ); 

ou si vous ne voulez pas désactiver le bouton, chargez après le premier chargement de Google API et appelez callCallback de chargement, avec réponse passée // function () {drawChart (response); }