Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript函数中嵌入JS的AJAX输出_Javascript_Php_Jquery_Ajax_Highcharts - Fatal编程技术网

如何在Javascript函数中嵌入JS的AJAX输出

如何在Javascript函数中嵌入JS的AJAX输出,javascript,php,jquery,ajax,highcharts,Javascript,Php,Jquery,Ajax,Highcharts,解决这个问题对我来说是一场噩梦。我正在使用phonegap开发一个应用程序。我在图中使用了highcharts。图形正确显示,但未显示图形中的工具提示。请检查下面的代码,我需要这个代码能够显示正确的数据的工具提示。必须有以下代码的循环,并且必须针对图中的每个用户或序列。因此,我在PHP中运行了一个for循环,并将其保存在一个变量中,然后使用AJAX以JSON格式获得了循环的整个输出 当我在保存AJAX输出的Javascript代码中使用变量时,它不会做任何事情,但如果我发出警告,它会警告我想要使

解决这个问题对我来说是一场噩梦。我正在使用phonegap开发一个应用程序。我在图中使用了highcharts。图形正确显示,但未显示图形中的工具提示。请检查下面的代码,我需要这个代码能够显示正确的数据的工具提示。必须有以下代码的循环,并且必须针对图中的每个用户或序列。因此,我在PHP中运行了一个for循环,并将其保存在一个变量中,然后使用AJAX以JSON格式获得了循环的整个输出

当我在保存AJAX输出的Javascript代码中使用变量时,它不会做任何事情,但如果我发出警告,它会警告我想要使工具提示工作的确切代码。我也试过eval(),但没有效果。任何帮助或指导都将不胜感激

循环代码

        $toolTip = '';

        for($i=0;$i<$teamControllerW->total_user;$i++){
            $toolTip .= "var chart = $('#team_containerWF').highcharts();";
            $toolTip .= "var figures".$i." = [".join($teamControllerW->new_yAxesData1[$i], ",") ."]; ";
            $toolTip .= "var fatVals".$i." = [". join($teamControllerW->fatVal[$i], ',') ."]; ";
            $toolTip .= "var weightVals".$i." = [". join($teamControllerW->weightVal[$i], ',') ."]; ";
            $toolTip .= "var result_playing_dates = [". join($teamControllerW->new_playing_dates_data[$i], ',') ."]; ";
            $toolTip .= "
            $.each(figures".$i.", function (j, figure".$i.") {
                 var curDanger = (figure".$i."[0] - danger[0][0]) * delta + danger[0][1];
                 var play_date = false;
                 for (var k = 0; k < result_playing_dates.length ; k ++ ) {
                    if (figure".$i."[0] == result_playing_dates[k]) {
                        play_date = true;
                        break;
                    }
                 }
                 ";
                 $toolTip .= "if (figure".$i."[1] > curDanger) {
                    if (play_date) {
                        if (chart.series[".$i."].data[j] && chart.series[".$i."].data[j].graphic) {
                            chart.series[".$i."].data[j].graphic.attr({ fill: '#a31515' });
                             chart.series[".$i."].data[j].update({
                             fatVal : fatVals".$i."[j],
                             weightVal : weightVals".$i."[j],
                             marker:{
                                fillColor: '#a31515',
                                radius: 6,
                                states: {
                                      hover: {
                                         fillColor: '#a31515',
                                         lineColor: '#a31515',
                                         radius: 10
                                      }
                                   }
                                }
                             });
                        }
                     }
                     else {
                        if (chart.series[".$i."].data[j] && chart.series[".$i."].data[j].graphic) {
                            chart.series[".$i."].data[j].graphic.attr({ fill: 'red' });
                            chart.series[".$i."].data[j].update({
                            fatVal : fatVals".$i."[j],
                            weightVal : weightVals".$i."[j],
                            marker:{
                               fillColor: 'red',
                               states: {
                                     hover: {
                                        fillColor: 'red',
                                        lineColor: 'red'                                    
                                     }
                                  }
                               }
                            });
                        }
                    }
                }else{
                    if (play_date) {
                        if (chart.series[".$i."].data[j] && chart.series[".$i."].data[j].graphic) {
                            chart.series[".$i."].data[j].graphic.attr({ fill: '#02491a' });
                            chart.series[".$i."].data[j].update({
                            fatVal : fatVals".$i."[j],
                            weightVal : weightVals".$i."[j],
                            marker:{
                                 fillColor: '#02491a',
                                 radius: 6,
                                 states: {
                                       hover: {
                                        fillColor: '#02491a',
                                        lineColor: '#02491a',
                                        radius: 10
                                       }
                                    }
                                 }
                            });
                        }
                     }
                     else {
                        if (chart.series[".$i."].data[j] && chart.series[".$i."].data[j].graphic) {
                            chart.series[".$i."].data[j].graphic.attr({ fill: 'green' });
                            chart.series[".$i."].data[j].update({
                            fatVal : fatVals".$i."[j],
                            weightVal : weightVals".$i."[j],
                            marker:{
                               fillColor: 'green',
                               states: {
                                     hover: {
                                        fillColor: 'green',
                                        lineColor: 'green'                                  
                                     }
                                  }
                               }
                            });
                        }
                    }
                 }
            });
            ";
      }//end for
好的,这听起来像是AJAX调用的“循环代码”已经通过js代码“var chart=$(“#team_containerWF”)。highcharts();…”但是,这永远不会被主页执行。传递的AJAX结果理想情况下应该是JSON/XML,然后只包含数据的名称-值对。这样,您正在查看的主代码将:

  • 验证那些名称-值对
  • 执行它自己的代码以基于这些名称-值对呈现图形
  • 因此,我的建议是,首先,主页处理Javascript中的显示逻辑,PHP中的AJAX页面处理拉取数据而不是显示的逻辑

    此外,您还可以向我们提供更多关于项目结构的详细信息。标记代码,例如index.php getChartPlayingDates.php

        var teamweighinLMgameAction = window.localStorage.getItem("teamweighinLMgameAction");
        AGWeigh = JSON.parse(teamweighinLMgameAction);
        var toolTip = AGWeigh.toolTip;
    
        alert(toolTip);//On alert it comes fine
    
        if(data_avail=='yes') { //check if data available
            var danger = myDangerLine,
            deltaX = danger[1][0] - danger[0][0],
            deltaY = danger[1][1] - danger[0][1],
            delta = deltaY / deltaX;
    
            alert("In: "+toolTip);//the data also alerts fine here
    
            toolTip; //This is the place where I need the loop output but it nothing comes up
    
        }