簡體   English   中英

當用戶從日期選擇器中選擇時,使用AJAX更新API URL

[英]Update an API URL using AJAX when user selects from datepicker

應用日期選擇器按鈕時,如何使用AJAX更新dateDates變量? apply.daterangepicker是單擊“應用”按鈕時觸發的

請參閱下面的代碼段,但實際上,我正在使用http://www.daterangepicker.com (依賴Bootstrap,jQuery和Moment.js的Date Range Picker)來允許用戶更新日期段,輸出...

let dateDates = start.format('YYYY-MM-DD') + ',' + end.format('YYYY-MM-DD');

並且dateDates作為...傳遞給API

$.getJSON(`https://examples.com/?module=API&method=API.get&date=${dateDates}&format=json`, (data) => {

請注意API的 date=內的${dateDates} ,因為當應用日期選擇器按鈕時,我希望這些值更新並使用新的URL重新加載JSON數據。

查看此代碼段中的完整代碼。 干杯。

 $(function() { var start = moment().subtract(29, 'days'); var end = moment(); function cb(start, end) { $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); } $('#reportrange').daterangepicker({ startDate: start, endDate: end, ranges: { 'Today': [moment(), moment()], 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 'Last 7 Days': [moment().subtract(6, 'days'), moment()], 'Last 30 Days': [moment().subtract(29, 'days'), moment()], 'This Month': [moment().startOf('month'), moment().endOf('month')], 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] } }, cb); cb(start, end); let dateDates = start.format('YYYY-MM-DD') + ',' + end.format('YYYY-MM-DD'); $.getJSON(`https://discovrbookings.innocraft.cloud/?module=API&method=API.get&format=json&idSite=2&period=day&date=${dateDates}&token_auth=68aa5bd12137f13255dcb98794b65dff`, (data) => { let visitors = 0; let uniq_visitors = 0; let pageviews = 0; let uniq_pageviews = 0; let actions = 0; let outlinks = 0; let bounces = 0; let avgtime = 0; let dayCount = 0; for (i in data) { if (data[i].nb_visits) { visitors += data[i].nb_visits; } } $("#visitors").html(visitors); }); }); 
 <!-- Include Required Prerequisites --> <script type="text/javascript" src="//cdn.jsdelivr.net/jquery/1/jquery.min.js"></script> <script type="text/javascript" src="//cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap/3/css/bootstrap.css" /> <!-- Include Date Range Picker --> <script type="text/javascript" src="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.css" /> <div id="reportrange" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc;"> <i class="glyphicon glyphicon-calendar fa fa-calendar"></i>&nbsp; <span></span> <b class="caret"></b> </div> <div id="visitors"></div> 

我沒有收到您的問題,但是據我了解,您需要將代碼放置在回調中以將json作為daterangepicker函數的第二個參數。

 var start = moment().subtract(29, 'days');
 var end = moment();
 let dateDates = start.format('YYYY-MM-DD') + ',' + end.format('YYYY-MM-DD'); 
 let defaultUrl = `https://discovrbookings.innocraft.cloud/?module=API&method=API.get&format=json&idSite=2&period=day&date=${dateDates}&token_auth=68aa5bd12137f13255dcb98794b65dff`; 
 updateValueForUrl(defaultUrl);
 $('#reportrange').daterangepicker({
    startDate: start,
    endDate: end,
    ranges: {
      'Today': [moment(), moment()],
      'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
      'Last 7 Days': [moment().subtract(6, 'days'), moment()],
      'Last 30 Days': [moment().subtract(29, 'days'), moment()],
      'This Month': [moment().startOf('month'), moment().endOf('month')],
      'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
    }
  }, function(start, end) {

    let dates = start.format('YYYY-MM-DD') + ',' + end.format('YYYY-MM-DD');
    let url = `https://discovrbookings.innocraft.cloud/?module=API&method=API.get&format=json&idSite=2&period=day&date=${dates}&token_auth=68aa5bd12137f13255dcb98794b65dff`;
    updateValueForUrl(url);
  });

  function updateValueForUrl(url) {
    $.getJSON(url, (data) => {
        let visitors = 0;
        let uniq_visitors = 0;
        let pageviews = 0;
        let uniq_pageviews = 0;
        let actions = 0;
        let outlinks = 0;
        let bounces = 0;
        let avgtime = 0;
        let dayCount = 0;

        for (i in data) {
          if (data[i].nb_visits) {
            visitors += data[i].nb_visits;
          }
        }
        $("#visitors").html(visitors);
    });
  }

填充<div>當用戶從 CakePHP 的下拉列表中選擇時的形式</div><div id="text_translate"><p>我有一個表格,用戶可以在其中對 select 進行 1-5 的評分。 這些選項中的每一個都是從鏈接表中提取的,並且都運行良好。</p><p> 我想做的是在 select 框的一側有一個 DIV,它將更新包含所選選項的更詳細描述。 例子:</p><p> 用戶選擇: 1 - EXCELLENT DIV 填充:優秀 - 一切都按預期工作,您沒有任何抱怨!</p><p> 用戶選擇: 4 - POOR DIV 填充: POOR - 你寧願死也不願上班。</p><p> 我可能會稍微修改一下我的描述,但你明白了。</p><p> I understand that in the AJAX helper, I can use observeField, but when I pull up the documentation from <a href="http://book.cakephp.org/view/1368/observeField#!/view/1358/AJAX" rel="nofollow">http://book.cakephp.org/view/1368/observeField#!/view/1358/AJAX</a> I see that the AJAX helper已棄用,取而代之的是 JsHelper + HtmlHelper。</p><p> 做我想做的事情的正確方法是什么?<br> 數據在loadLevel中,當computters.load_level_id改變時,div內容需要顯示loadLevels.description。 (這對我來說很有意義,但如果我不清楚,請對 CakePHP 新手友好)</p><p> 編輯:我正在使用 CakePHP 1.3.8</p></div>

[英]Populate <div> in form when user selects from dropdown in CakePHP

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 React:當用戶從下拉菜單中選擇一個值時,如何更新 object 的 state? 當用戶從下拉列表中選擇時刷新 CKEDITOR 當用戶在 react.s 中選擇來自 api 的列表項時,如何切換 class? 使用jQuery:當用戶從下拉列表中進行選擇時,如何獲取選項值 當用戶在選擇框中選擇選項時使用 window.location.href 重定向用戶僅更改導航器中 url 的最后一位 用戶從表單中的選項中選擇城市並將經度和緯度傳遞給 api 用戶使用AJAX和jQuery登錄時如何更新php頁面? 當用戶使用Angular 6在地址欄中手動更改時,請使用api中的真實值替換URL中的參數 用戶從文件字段中選擇文件時,是否發生JS事件? 填充<div>當用戶從 CakePHP 的下拉列表中選擇時的形式</div><div id="text_translate"><p>我有一個表格,用戶可以在其中對 select 進行 1-5 的評分。 這些選項中的每一個都是從鏈接表中提取的,並且都運行良好。</p><p> 我想做的是在 select 框的一側有一個 DIV,它將更新包含所選選項的更詳細描述。 例子:</p><p> 用戶選擇: 1 - EXCELLENT DIV 填充:優秀 - 一切都按預期工作,您沒有任何抱怨!</p><p> 用戶選擇: 4 - POOR DIV 填充: POOR - 你寧願死也不願上班。</p><p> 我可能會稍微修改一下我的描述,但你明白了。</p><p> I understand that in the AJAX helper, I can use observeField, but when I pull up the documentation from <a href="http://book.cakephp.org/view/1368/observeField#!/view/1358/AJAX" rel="nofollow">http://book.cakephp.org/view/1368/observeField#!/view/1358/AJAX</a> I see that the AJAX helper已棄用,取而代之的是 JsHelper + HtmlHelper。</p><p> 做我想做的事情的正確方法是什么?<br> 數據在loadLevel中,當computters.load_level_id改變時,div內容需要顯示loadLevels.description。 (這對我來說很有意義,但如果我不清楚,請對 CakePHP 新手友好)</p><p> 編輯:我正在使用 CakePHP 1.3.8</p></div>
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM