Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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/2/jquery/86.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 jQuery中select到getJSON数据的默认值_Javascript_Jquery_Json_Drop Down Menu - Fatal编程技术网

Javascript jQuery中select到getJSON数据的默认值

Javascript jQuery中select到getJSON数据的默认值,javascript,jquery,json,drop-down-menu,Javascript,Jquery,Json,Drop Down Menu,需要以下代码片段的帮助。当用户从选择中选择一个选项时,API URL将根据用户想要的适当天数进行更新。但是,我已经在select选项中设置了一个默认值,通过使用selected和通过jQuery与$'DateSelector'.val'30'一起设置 除了页面加载中没有加载JSON数据外,每个都完全按照它们的意图进行 如何在页面加载时传递此值,以便默认API URL提供正确的数据 $'DateSelector'.val'30' 函数日期周期{ 让datePeriod=$DateSelector

需要以下代码片段的帮助。当用户从选择中选择一个选项时,API URL将根据用户想要的适当天数进行更新。但是,我已经在select选项中设置了一个默认值,通过使用selected和通过jQuery与$'DateSelector'.val'30'一起设置

除了页面加载中没有加载JSON数据外,每个都完全按照它们的意图进行

如何在页面加载时传递此值,以便默认API URL提供正确的数据

$'DateSelector'.val'30' 函数日期周期{ 让datePeriod=$DateSelector.val; $DateShow.htmldatePeriod; $.getJSON`https://discovrbookings.innocraft.cloud/?module=API&method=API.get&format=json&idSite=2&period=day&date=last${datePeriod}&token_auth=68aa5bd12137f13255dcb98794b65dff`,数据=>{ //控制台日志数据; 让访客=0; 让uniq_访问者=0; 让页面浏览量=0; 让uniq_页面浏览量=0; 让动作=0; 设outlinks=0; 让反弹=0; 设avgtime=0; 对于数据中的i{ 如果数据[i].nb\u访问{ 访客+=数据[i]。nb_访客; } 如果数据[i].nb\U uniq\U访客{ uniq_访客+=数据[i]。nb_uniq_访客; } 如果数据[i].nb_页面浏览量{ 网页浏览量+=数据[i].nb_网页浏览量; } 如果数据[i].nb\u uniq\u页面浏览量{ uniq_pageviews+=数据[i]。nb_uniq_pageviews; } 如果数据[i].nb\u操作{ 动作+=数据[i].nb_动作; } 如果数据[i].nb\u超出链接{ outlinks+=数据[i]。nb_outlinks; } 如果数据[i]。反弹\U计数{ 反弹+=数据[i]。反弹计数; } 如果数据[i]。现场平均时间{ avgtime+=数据[i]。现场的平均时间; } } $visitors.htmlvisitors; $uniq_visitors.htmluniq_visitors; $pageviews.htmlpageviews; $uniq_pageviews.htmluniq_pageviews; $actions.htmlactions; $outlinks.htmloutlinks; $bounces.htmlbounces; $avgtime.htmlavgtime/datePeriod; }; } 最后7天 过去14天 过去30天 过去90天 过去365天
您正在调用datePeriod onChange。相反,在页面加载时调用它一次,然后像当前一样触发datePeriod。我所做的是手动触发datePeriod一次。检查下面的代码段

$'DateSelector'.val'30' 日期周期; 函数日期周期{ 让datePeriod=$DateSelector.val; $DateShow.htmldatePeriod; $.getJSON`https://discovrbookings.innocraft.cloud/?module=API&method=API.get&format=json&idSite=2&period=day&date=last${datePeriod}&token_auth=68aa5bd12137f13255dcb98794b65dff`,数据=>{ //控制台日志数据; 让访客=0; 让uniq_访问者=0; 让页面浏览量=0; 让uniq_页面浏览量=0; 让动作=0; 设outlinks=0; 让反弹=0; 设avgtime=0; 对于数据中的i{ 如果数据[i].nb\u访问{ 访客+=数据[i]。nb_访客; } 如果数据[i].nb\U uniq\U访客{ uniq_访客+=数据[i]。nb_uniq_访客; } 如果数据[i].nb_页面浏览量{ 网页浏览量+=数据[i].nb_网页浏览量; } 如果数据[i].nb\u uniq\u页面浏览量{ uniq_pageviews+=数据[i]。nb_uniq_pageviews; } 如果数据[i].nb\u操作{ 动作+=数据[i].nb_动作; } 如果数据[i].nb\u超出链接{ outlinks+=数据[i]。nb_outlinks; } 如果数据[i]。反弹\U计数{ 反弹+=数据[i]。反弹计数; } 如果数据[i]。现场平均时间{ avgtime+=数据[i]。现场的平均时间; } } $visitors.htmlvisitors; $uniq_visitors.htmluniq_visitors; $pageviews.htmlpageviews; $uniq_pageviews.htmluniq_pageviews; $actions.htmlactions; $outlinks.htmloutlinks; $bounces.htmlbounces; $avgtime.htmlavgtime/datePeriod; }; } 最后7天 过去14天 过去30天 过去90天 过去365天
这应该行得通。我已将triggerchange添加到您的代码中

$'DateSelector'.val'30'.triggerchange

$'DateSelector'.val'30'.triggerchange 函数日期周期{ 让datePeriod=$DateSelector.val; $DateShow.htmldatePeriod; $.getJSON`https://discovrbookings.innocraft.cloud/?module=API&method=API.get&format=json&idSite=2&period=day&date=last${datePeriod}&token_auth=68aa5bd12137f13255dcb98794b65dff`,数据=>{ //控制台日志数据; 让访客=0; 让uniq_访问者=0; 让页面浏览量=0; 让uniq_页面浏览量=0; 让动作=0; 设outlinks=0; 让反弹=0; 设avgtime=0; 对于数据中的i{ 如果数据[i].nb\u访问{ 访客+=数据[i]。nb_访客; } 如果数据[i].nb\U uniq\U访客{ uniq_访客+=数据[i]。nb_uniq_访客; } 如果数据[i].nb_页面浏览量{ 网页浏览量+=数据[i].nb_网页浏览量; } 如果数据[i].nb\u uniq\u页面浏览量{ uniq_pageviews+=数据[i]。nb_uniq_pageviews; } 如果数据[i].nb\u操作{ 动作+=数据[i].nb_动作; } 如果数据[i].nb\U outl 墨水{ outlinks+=数据[i]。nb_outlinks; } 如果数据[i]。反弹\U计数{ 反弹+=数据[i]。反弹计数; } 如果数据[i]。现场平均时间{ avgtime+=数据[i]。现场的平均时间; } } $visitors.htmlvisitors; $uniq_visitors.htmluniq_visitors; $pageviews.htmlpageviews; $uniq_pageviews.htmluniq_pageviews; $actions.htmlactions; $outlinks.htmloutlinks; $bounces.htmlbounces; $avgtime.htmlavgtime/datePeriod; }; } 最后7天 过去14天 过去30天 过去90天 过去365天
使用Jquery设置默认值时, $'DateSelector'.val'30'。触发'change'


也许能解决你的问题

这是可行的,但不是一个可靠的解决方案,因为当您将onChange函数更改为其他函数时,它将停止工作。为了代码的可维护性,请使用我在回答中提到的tiggerchange谢谢你的回答,它在页面加载时返回一个值,但在选择select选项之前返回0。很抱歉,我没有遵循。你什么时候得到零?返回的id=visitors id=uniq\u visitors的数据。。。页面加载为零。这很奇怪。我得到50分和38分,谢谢你的回答。我只是想现在就开始工作。使用您的代码片段,我没有收到页面加载的值。只是寻找任何冲突。您没有在pageload上获得值,因为您正在进行API调用,该调用需要时间来获取数据并完成显示任务。如果存在对apiI的依赖,您可能需要在执行相同操作时显示加载程序。我已使用您的答案向问题添加了屏幕记录。从我所看到的情况来看,没有冲突,除非页面上的其他数据有阻碍,但我对此表示怀疑。您有什么建议可以强制执行$'DateSelector'.val'30'.triggerchange吗?所有脚本都加载到selectJust上方,以便让您知道。你的回答绝对正确-我在页面上有很多API,这是我的问题。我通过setTimeoutfunction{$'DateSelector'.val'30'.triggerchange},1000;修复了这个问题;。再次感谢您的帮助。@Darren很酷。这是我的荣幸。