iT邦幫忙

0

解惑

  • 分享至 

  • twitterImage

小弟我最近在寫一個小專案
要將我用python爬到的資料 做統整 匯出一個報表
但是目前有遇到一個小問題
我想要我在賣家ID(下拉選單)選擇A賣家 他會對應到他的賣場資訊
但是我目前不知道 要從哪裏下手 再請教各位大大解惑!!
https://ithelp.ithome.com.tw/upload/images/20200929/20128955o3LWwbMN4c.png

後端的是什麼語言平台?資料庫呢?
前端有用什麼javascript框架嗎?還是pure javascript ?
x8831221 iT邦新手 4 級 ‧ 2020-09-29 12:16:43 檢舉
其實我是用laravel下去寫的 前端都用html比較多 有插幾段javascript 我目前是希望他能在我選擇A就對應到他的B 也不知道要怎麼下手
(抱歉 我還是小白 還蠻菜的.)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
通靈亡
iT邦高手 1 級 ‧ 2020-09-29 10:49:48
最佳解答
  1. 在下拉選單<select>加入一個JS偵聽事件,選擇任一個賣家後,透過AJAX發送Request,帶入賣家A的網址或ID至Python後端
  2. Python後端接收前端的AJAX Request,藉由爬蟲取得A賣家的所有賣場,將結果Response 傳回前端
  3. 前端接收後端爬回來的賣場清單 (Response),塞到網頁的<select>裡面
x8831221 iT邦新手 4 級 ‧ 2020-09-29 10:52:21 檢舉

抱歉 是我沒交代好 這個是我下一步的做法
我功力不到那邊 我目前資料都在資料庫 目前都是透過資料庫處理
我目前在參考這篇文章:https://blog.darkthread.net/blog/razor-page-cascading-dropdown/
但是還是看不懂..

通靈亡 iT邦高手 1 級 ‧ 2020-09-29 10:59:56 檢舉

不會啦
如果資料存在資料庫的話,把爬蟲的程式碼換成存取資料庫的程式碼

你參考的那篇文章跟我說的做法也是一樣的,不管你用JQuery或Javascript都可以做到

主要在主分類下拉選單 change 事件加上邏輯,發出 AJAX 從後端取得該主分類對映的次分類清單,產生次分類下拉選項,若次分類欄位已有值,則要比對符合選項標為己選取,才能反映現有資料狀態。次分類下拉選單的 change 事件則要將選取結果填入次分類

// 對主項目的下拉選單<select>加入偵聽事件,一旦改變選擇的主類別(Category),就透過AJAX取得子類別的項目
var subCatgSelector = $("#SubCategory");
$("#TimeSheetEntry_Category").change(function () {
    // 取得子類別清單的ajax
    $.getJSON("?handler=SubCategories&category=" + $(this).val()).done(function (options) {
        // 清空子類別底下的項目
        subCatgSelector.empty();
        var currVal = $("#TimeSheetEntry_SubCategory").val();
        
        // 將後端傳回來前端的所有子類別塞回子類別的<select>當中
        for (var i = 0; i < options.length; i++) {
            var option = options[i];
            var opEl = $("<option></option>").attr("value", option).text(option);
            if (currVal == option) opEl.attr("selected", "selected");
            opEl.appendTo(subCatgSelector);
        }
    });
}).change();

然後依照你使用的資料庫和後端語言
來撰寫後端取得子類別的邏輯
文章當中的後端是使用 .Net Core

x8831221 iT邦新手 4 級 ‧ 2020-09-29 12:17:25 檢舉

好的 感謝你 你這樣寫我就懂很多了 我再多嘗試嘗試

我要發表回答

立即登入回答