thinkphp如何與echarts互動

2021-09-18 04:12:12 字數 1571 閱讀 7867

最近嘗試著用thinkphp傳遞數值給echarts,踩了挺多坑的,感觸也很多。

本文章目的是為踩坑卡住的萌新提供一點思路,所以大佬和未接觸過的就沒必要看下去了。

我按照流程來梳理一遍吧。

在html頁面,利用ajax向thinkphp的控制器傳值

$.ajax(?daynum=" + daynum +         "&storageuuid=" + storageuuid,//提交url

beforesend: function (r) ,

success: function (result) ?daynum=" + daynum + "&storageuuid=" + storageuuid,//提交url

// data: ,//提交的資料

success: function (result) );

}});

看起來有些亂,實際上這是兩個ajax請求巢狀起來,把第二個ajax請求放到第二個ajax的success中。之所有這樣做,是因為非同步的原因。

看到$("#p").show();

麼?這句話是放在beforesend: 裡面的,作用是發起ajax請求前顯示loading,等到完成以後再隱藏起來。

因此,async:必須是true。

但是如果async:true的話,又會出現乙個新的問題。ajax的載入順序不一定。

如下:$.ajax(這段的作用是什麼呢?如果你用的是where語句來獲取資料的話,當頁面傳入的uuid為空值時,則$where['storage_uuid']會為null或者undefine,查出來的資料也自然是0.而如果我想讓他傳入資料為空,則選擇該字段的所有資料的話,就應該這麼寫。

比如說,我有三種可能,a倉,b倉,所有。當選擇所有的時候,傳入的uuid為空,那麼就應該加上這段,防止出現 $where['storage_uuid'=>'undefine']。

3.thinkphp將資料轉換成echarts需要的格式。

只是稍微用一下echarts而不深入的話,則只要把資料按照格式填進echarts就可以了。

但是要怎樣轉換我們需要的格式呢?

首先,這段**的作用是獲取表中sub_materiel_id相同的數量的前10位。

此時獲得的是物件,要將其轉換成陣列才能繼續操作。

轉換方式為 $arr = $result->toarray();

如果用運算元組的函式操作result的話,你只會得到乙個悲劇的null。

操作方式:

array_column($outflow_data, 'num', 'sub_materiel_id');
他會將

轉換成,很是方便。

在轉換和傳輸html的過程中,陣列的順序不會發生變化,

比如假設sql查詢出來的順序就是

那麼傳輸到html中的話這個資料順序是不會變的,如果符合echarts要求的順序的話直接填進去就可以。

但是如果你用

console.log()將他們再控制器中列印出來的話,看到的有可能順序會發生改變,可能會列印出

但是不用擔心,這只是列印出來的順序不一樣,陣列中資料的順序依舊沒有發生變化。

Thinkphp如何傳送郵件。

thinkphp如何傳送郵件。搜尋phpmailer,點第二個進去 可以直接複製這段簡單的案例 下面這段 是我測試郵件用的 有備註了詳細注釋的 應用公共檔案 use phpmailer phpmailer phpmailer 這個是發郵件的類,引入進來 use phpmailer phpmailer...

thinkphp漏洞如何修復

thinkphp漏洞修復,官方於近日,對現有的thinkphp5.0到5.1所有版本進行了公升級,以及補丁更新,這次更新主要是進行了一些漏洞修復,最嚴重的就是之前存在的sql注入漏洞,以及遠端 執行查詢系統的漏洞都進行了修復,官方本以為沒有問題了,但是在實際的安全檢測當中發現,還是存在問題,還是可以...

thinkPHP安裝與配置

使用git安裝thinkphp 1 git clone tp5 clone thinkphp的基礎框架 tp5為檔案名字。2 切換到tp5目錄下在命令列中使用 3 git clone thinkphp 4 git checkout 5.1 檢查更新為5.1 要把thinkphp框架放到apche伺服...