如何开发具有多个下拉菜单的站内链接程序?

How can I develop an in-site linking program with multiple dropdown?

我需要开发一个类似的多下拉应用程序,我们在我们的 Shopify 电子商务 Site 上使用 links 到网站内的所有轮胎类型页面。我试过了,但我做不到,因为我对 JS 和 Jquery 的经验还不够,而且我不知道如何开始。你能帮帮我吗?

我想将在下拉列表中选择的选项的 json 值添加到下面 link 的末尾,它应该在 "Find Now" (Hemen Bul) 按钮中。 https://kolayoto.com/collections/lastikleri?_=

如果我们的选择是"Yaz"、“225”、“60”和“15”。我们的选择将添加到 link 的末尾,当我们单击“立即查找”(Hemen Bul) 按钮时,它会将我们定向到下面的 link。 https://kolayoto.com/collections/lastikleri?_=pf&pf_t_mevsim=Mevsim-Yaz&pf_t_genislik=Taban%20Geni%C5%9Fli%C4%9Fi-225&pf_t_oran=Kesit%20Oran%C4%B1-60&pf_t_cap=Jant%20%C3%87ap%C4%B1-15

这样,我会link从主页到所有季节和轮胎类型页面。

Example Json file that I will use in the application.

{
  "mevsim": {
    "DörtMevsim": "pf&pf_t_diger_oezellikler=DiğerÖzellikler-4Mevsim",
    "Yaz": "pf&pf_t_mevsim=Mevsim-Yaz",
    "Kış": "pf&pf_t_mevsim=Mevsim-Kış"
  },
  "tabangenisligi": {
    "135": "&pf_t_genislik=Taban%20Genişliği-135",
    "145": "&pf_t_genislik=Taban%20Genişliği-145",
    "155": "&pf_t_genislik=Taban%20Genişliği-155",
    "165": "&pf_t_genislik=Taban%20Genişliği-165",
    "175": "&pf_t_genislik=Taban%20Genişliği-175",
    "185": "&pf_t_genislik=Taban%20Genişliği-185",
    "195": "&pf_t_genislik=Taban%20Genişliği-195",
    "205": "&pf_t_genislik=Taban%20Genişliği-205",
    "215": "&pf_t_genislik=Taban%20Genişliği-215",
    "225": "&pf_t_genislik=Taban%20Genişliği-225",
    "235": "&pf_t_genislik=Taban%20Genişliği-235",
    "245": "&pf_t_genislik=Taban%20Genişliği-245",
    "255": "&pf_t_genislik=Taban%20Genişliği-255"
  },
  "kesitorani": {
    "30": "&pf_t_oran=Kesit%20Oranı-30",
    "35": "&pf_t_oran=Kesit%20Oranı-35",
    "40": "&pf_t_oran=Kesit%20Oranı-40",
    "45": "&pf_t_oran=Kesit%20Oranı-45",
    "50": "&pf_t_oran=Kesit%20Oranı-50",
    "55": "&pf_t_oran=Kesit%20Oranı-55",
    "60": "&pf_t_oran=Kesit%20Oranı-60",
    "65": "&pf_t_oran=Kesit%20Oranı-65",
    "70": "&pf_t_oran=Kesit%20Oranı-70",
    "75": "&pf_t_oran=Kesit%20Oranı-75"
  },
  "jantcapi": {
    "13": "&pf_t_cap=Jant%20Çapı-13",
    "14": "&pf_t_cap=Jant%20Çapı-14",
    "15": "&pf_t_cap=Jant%20Çapı-15",
    "16": "&pf_t_cap=Jant%20Çapı-16",
    "17": "&pf_t_cap=Jant%20Çapı-17",
    "18": "&pf_t_cap=Jant%20Çapı-18",
    "19": "&pf_t_cap=Jant%20Çapı-19",
    "20": "&pf_t_cap=Jant%20Çapı-20"
  }
}

我不知道如何将link Json值添加到下拉列表中,并将它们添加到"Find Now"按钮中的link当这些值时被选中。

作为一名新的软件开发人员,我非常需要这个开发,我正在等待您的帮助。非常感谢您。

您可以这样做:添加 url 部分作为选项的值,并将所有选定的值添加到 url。在示例中,我只添加了每个类别的几个选项作为演示,单击 "Find all" 按钮后,url 出现在控制台中。要真正转到 url,请取消注释行 location.href = url.

$("#find").on("click", function() {
  let mevsim = ($("#mevsim").val() == 0) ? "" : $("#mevsim").val();
  let tabangenisligi = ($("#tabangenisligi").val() == 0) ? "" : $("#tabangenisligi").val();
  let kesitorani = ($("#mevsim").val() == 0) ? "" : $("#kesitorani").val();
  let jantcapi = ($("#mevsim").val() == 0) ? "" : $("#jantcapi").val();
  let url = "https://kolayoto.com/collections/lastikleri?_=" + mevsim + tabangenisligi + kesitorani + jantcapi;
  console.log("url: " + url);
  /* location.href = url */
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="mevsim">
  <option value="0">Please select</option>
  <option value="pf&pf_t_diger_oezellikler=DiğerÖzellikler-4Mevsim">DörtMevsim</option>
  <option value="pf&pf_t_mevsim=Mevsim-Yaz">Yaz</option>
  <option value="pf&pf_t_mevsim=Mevsim-Kış">Kış</option>
</select><br /><br />
<select id="tabangenisligi">
  <option value="0">Please select</option>
  <option value="&pf_t_genislik=Taban%20Genişliği-135">135</option>
  <option value="&pf_t_genislik=Taban%20Genişliği-145">145</option>
  <option value="&pf_t_genislik=Taban%20Genişliği-155">155</option>
</select><br /><br />
<select id="kesitorani">
  <option value="0">Please select</option>
  <option value="&pf_t_oran=Kesit%20Oranı-30">30</option>
  <option value="&pf_t_oran=Kesit%20Oranı-35">35</option>
  <option value="&pf_t_oran=Kesit%20Oranı-40">40</option>
</select><br /><br />
<select id="jantcapi">
  <option value="0">Please select</option>
  <option value="&pf_t_cap=Jant%20Çapı-13">13</option>
  <option value="&pf_t_cap=Jant%20Çapı-14">14</option>
  <option value="&pf_t_cap=Jant%20Çapı-15">15</option>
</select><br /><br />
<button id="find">
  Find Now
</button>

更新:由于无法选择将所有 url 部分作为值添加到选项中,因此也可以从 JSON 中获取它们。请注意,url 部分不再需要是选项值,这只是示例代码的剩余部分。单击 "Find now" 按钮时取消注释行 location.href = url 转到 URL。

let data = {
  "mevsim": {
    "DörtMevsim": "pf&pf_t_diger_oezellikler=DiğerÖzellikler-4Mevsim",
    "Yaz": "pf&pf_t_mevsim=Mevsim-Yaz",
    "Kış": "pf&pf_t_mevsim=Mevsim-Kış"
  },
  "tabangenisligi": {
    "135": "&pf_t_genislik=Taban%20Genişliği-135",
    "145": "&pf_t_genislik=Taban%20Genişliği-145",
    "155": "&pf_t_genislik=Taban%20Genişliği-155",
    "165": "&pf_t_genislik=Taban%20Genişliği-165",
    "175": "&pf_t_genislik=Taban%20Genişliği-175",
    "185": "&pf_t_genislik=Taban%20Genişliği-185",
    "195": "&pf_t_genislik=Taban%20Genişliği-195",
    "205": "&pf_t_genislik=Taban%20Genişliği-205",
    "215": "&pf_t_genislik=Taban%20Genişliği-215",
    "225": "&pf_t_genislik=Taban%20Genişliği-225",
    "235": "&pf_t_genislik=Taban%20Genişliği-235",
    "245": "&pf_t_genislik=Taban%20Genişliği-245",
    "255": "&pf_t_genislik=Taban%20Genişliği-255"
  },
  "kesitorani": {
    "30": "&pf_t_oran=Kesit%20Oranı-30",
    "35": "&pf_t_oran=Kesit%20Oranı-35",
    "40": "&pf_t_oran=Kesit%20Oranı-40",
    "45": "&pf_t_oran=Kesit%20Oranı-45",
    "50": "&pf_t_oran=Kesit%20Oranı-50",
    "55": "&pf_t_oran=Kesit%20Oranı-55",
    "60": "&pf_t_oran=Kesit%20Oranı-60",
    "65": "&pf_t_oran=Kesit%20Oranı-65",
    "70": "&pf_t_oran=Kesit%20Oranı-70",
    "75": "&pf_t_oran=Kesit%20Oranı-75"
  },
  "jantcapi": {
    "13": "&pf_t_cap=Jant%20Çapı-13",
    "14": "&pf_t_cap=Jant%20Çapı-14",
    "15": "&pf_t_cap=Jant%20Çapı-15",
    "16": "&pf_t_cap=Jant%20Çapı-16",
    "17": "&pf_t_cap=Jant%20Çapı-17",
    "18": "&pf_t_cap=Jant%20Çapı-18",
    "19": "&pf_t_cap=Jant%20Çapı-19",
    "20": "&pf_t_cap=Jant%20Çapı-20"
  }
}

$("#find").on("click", function() {
let mevsim, tabangenisligi, kesitorani, jantcapi;
if($("#mevsim").val() == 0){
mevsim = "";
}
else {
   let selected = $("#mevsim").find("option:selected").text();
  
   $.each(data, function(i, val) {
    if (i == "mevsim") {
      $.each(val, function(key, value) {
        if (key == selected) {
          mevsim = value;
        }
      });
    }
  });
}
if($("#tabangenisligi").val() == 0){
tabangenisligi = "";
}
else {
   let selected = $("#tabangenisligi").find("option:selected").text();
  
   $.each(data, function(i, val) {
    if (i == "tabangenisligi") {
      $.each(val, function(key, value) {
        if (key == selected) {
          tabangenisligi = value;
        }
      });
    }
  });
}
if($("#kesitorani").val() == 0){
kesitorani = "";
}
else {
   let selected = $("#kesitorani").find("option:selected").text();
  
   $.each(data, function(i, val) {
    if (i == "kesitorani") {
      $.each(val, function(key, value) {
        if (key == selected) {
          kesitorani = value;
        }
      });
    }
  });
}
if($("#jantcapi").val() == 0){
jantcapi = "";
}
else {
   let selected = $("#jantcapi").find("option:selected").text();
  
   $.each(data, function(i, val) {
    if (i == "jantcapi") {
      $.each(val, function(key, value) {
        if (key == selected) {
          jantcapi = value;
        }
      });
    }
  });
}
  let url = "https://kolayoto.com/collections/lastikleri?_=" + mevsim + tabangenisligi + kesitorani + jantcapi;
  console.log("url: " + url);
  /* location.href= url */
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="mevsim">
  <option value="0">Please select</option>
  <option value="pf&pf_t_diger_oezellikler=DiğerÖzellikler-4Mevsim">DörtMevsim</option>
  <option value="pf&pf_t_mevsim=Mevsim-Yaz">Yaz</option>
  <option value="pf&pf_t_mevsim=Mevsim-Kış">Kış</option>
</select><br /><br />
<select id="tabangenisligi">
  <option value="0">Please select</option>
  <option value="&pf_t_genislik=Taban%20Genişliği-135">135</option>
  <option value="&pf_t_genislik=Taban%20Genişliği-145">145</option>
  <option value="&pf_t_genislik=Taban%20Genişliği-155">155</option>
</select><br /><br />
<select id="kesitorani">
  <option value="0">Please select</option>
  <option value="&pf_t_oran=Kesit%20Oranı-30">30</option>
  <option value="&pf_t_oran=Kesit%20Oranı-35">35</option>
  <option value="&pf_t_oran=Kesit%20Oranı-40">40</option>
</select><br /><br />
<select id="jantcapi">
  <option value="0">Please select</option>
  <option value="&pf_t_cap=Jant%20Çapı-13">13</option>
  <option value="&pf_t_cap=Jant%20Çapı-14">14</option>
  <option value="&pf_t_cap=Jant%20Çapı-15">15</option>
</select><br /><br />
<button id="find">
  Find Now
</button>