Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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 如何根据单击的按钮更新Ajax调用?_Javascript_Html_Ajax_Twitter Bootstrap_Tabs - Fatal编程技术网

Javascript 如何根据单击的按钮更新Ajax调用?

Javascript 如何根据单击的按钮更新Ajax调用?,javascript,html,ajax,twitter-bootstrap,tabs,Javascript,Html,Ajax,Twitter Bootstrap,Tabs,我有下面的HTML代码,其中包含引导标签/药丸。我的目标是让用户看到前一天和前七天的数据计数,具体取决于他们选择的选项卡。我有一个正在工作的AJAX调用,它从过去24小时和7天中提取了一个计数 但是,每当我点击“周”选项卡时;数据仍然显示白天的数据。有人能告诉我哪里出了问题吗 谢谢 HTML: AJAX调用: $(document).ready(function getMetadata() { $(function poll() { $.ajax({ url:

我有下面的HTML代码,其中包含引导标签/药丸。我的目标是让用户看到前一天和前七天的数据计数,具体取决于他们选择的选项卡。我有一个正在工作的AJAX调用,它从过去24小时和7天中提取了一个计数

但是,每当我点击“周”选项卡时;数据仍然显示白天的数据。有人能告诉我哪里出了问题吗

谢谢

HTML:

AJAX调用:

$(document).ready(function getMetadata() {
    $(function poll() {
      $.ajax({
        url: "<!--#include virtual="../include/env"-->/count/" +  ($('#time_runs').text() == '' ? 'day-time' : $('#time_runs').text()),
        type: "GET",
        cache: "false",
        success: function(data) {
          count(data);
        },
        dataType: "json"
      });
    })
  })
  ;

您好,这里是一个示例,使用您的代码进行了一些更改,如下所示:

在本例中,我们将使用nav药丸为您的ul添加一个id。 将名为selected的数据属性添加到ul元素中。 在每次单击时,我都会更改此onclick=$'time\u runs'。此onclick的文本'week-time'=返回$'nav-pills'。数据'selected','today'。 由于我们现在不知道执行轮询功能的是什么,我在您的ul上添加了一个委派事件,如$'nav-pills'。单击,'li>a'。 $document.ready=>{ $'nav-pills'。点击,'li>a',e=>{ //这里是您的ajax调用,而不是这个示例调用 让时间=$'nav-pills'。选择数据集; 控制台日志时间; json={ 今天:今天日志耶!!!, 脆弱的:脆弱的原木,让岩石 }; $.ajax{ url:“/echo/json/”, 键入:“POST”, 数据类型:“JSON”, 数据:{time:time,json:json.stringifyjson} }.doneresponse=>{ 控制台,日志时间,响应 } } } 计数
下面是如何完全使用Bootstrap的内置选项卡功能来实现这一点。有关更多信息,请参阅

注意,我在这里使用了一个虚拟URL,它总是返回相同的数据,但这只是一个细节——这里的要点是

a根据文档正确设置选项卡

b响应选项卡显示的事件,以便您可以触发新请求以获取计数

c存储您发送给服务器的值,以告诉它在选项卡的数据属性中返回什么数据,而不是混乱地设置然后读取另一个单独字段的值

N.B.设计注释:您可能需要考虑缓存数据和/或预先加载这些计数到页面中,而不是每次显示选项卡时生成Ajax请求。由于您似乎有固定数量的选项卡,而且计数数据很小,因此每次用户单击选项卡时,持续触发HTTP请求以获取这一小块数据似乎效率低下。除非每隔几秒钟在服务器上更改此数据,否则不太可能产生不同的结果

$document.readyfunction{ $'a[data toggle=tab]'。在'show.bs.tab'上,函数{ var time=$this.datatime; 控制台日志时间; $.ajax{ 网址:https://api.myjson.com/bins/zzirx?time= +时间,, 类型:GET, cache:false, 成功:functiondata{ 控制台日志数据; }, 数据类型:json }; }; }; 计数 白天 周
如何调用poll函数?为什么要用美元包装呢??。在页面加载时,您可能只调用了一次此函数,以后再也不会调用它。您需要确保在用户选择选项卡时调用该函数。您好,ADyson,1。添加轮询函数时出错。我已将其从代码2中删除。我的印象是,$是调用id的正确语法?3.这也是我的假设。这与$document.ready有关吗?您认为代码应该是什么样子?$是调用id的正确语法吗。。。该语法调用jQuery构造函数,该构造函数通常用于选择元素。。。但是,您使用它来包装函数定义,在本上下文中,它没有多大意义。$document.ready用于包装代码块,您希望将其执行延迟到页面完全加载为止,例如,在元素上设置事件处理程序,同时确保在声明处理程序时加载这些元素。在继续之前,您可能需要温习一下jQuery和JavaScript的基础知识。如果您准备好耐心,那么当我下一次来到计算机前时,我将为您拼凑一个代码示例。我现在在手机上,所以很难输入,而且几乎不可能测试。谢谢ADyson,它能用。谢谢。但是,当页面准备就绪时,默认情况下不会加载“我的工作日”选项卡。我必须为它选择日期标签。我看在你的例子中没有。在您的代码中,在文档准备就绪的哪一天加载?以防我错过了什么。它们的配置如上所述。但是仍然需要点击它,数据才能真正显示出来。也许你有其他CSS隐藏了它或者其他什么?我真的看不出来,一定是什么不明显的东西。如果您可以创建一个代码笔或JSFIDLE的代码演示来重现这个问题,那么我可能可以帮助您解决这个问题。
$(document).ready(function getMetadata() {
    $(function poll() {
      $.ajax({
        url: "<!--#include virtual="../include/env"-->/count/" +  ($('#time_runs').text() == '' ? 'day-time' : $('#time_runs').text()),
        type: "GET",
        cache: "false",
        success: function(data) {
          count(data);
        },
        dataType: "json"
      });
    })
  })
  ;