gpt4 book ai didi

javascript - 如何将 JS 的 AJAX 输出嵌入到 Javascript 函数中

转载 作者:行者123 更新时间:2023-12-03 12:21:44 25 4
gpt4 key购买 nike

解决这个问题对我来说变成了一场噩梦。我正在使用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

我这样调用数据

    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

}

最佳答案

好吧,这听起来像是 AJAX 调用的“循环代码”已经传递了 js 代码“var Chart = $('#team_containerWF').highcharts();...”!! 但是,这永远不会被主页执行。理想情况下,传递的 AJAX 结果应该是 JSON/XML,并且仅包含数据的名称值对。这样您的主要代码就会被查看:

  1. validate those name value pairs
  2. execute its own code to render the graph based on those name value pairs

因此,我的建议是尝试构建它,首先主页处理 Javascript 中的显示逻辑,PHP 中的 AJAX 页面处理提取数据而不是显示的逻辑。

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

关于javascript - 如何将 JS 的 AJAX 输出嵌入到 Javascript 函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24422334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com