uniapp自己制作的级联下拉框

<template>
  <view>
    <button @click="showModal">打开选择器</button>
    <view v-if="isModalVisible" class="modal-overlay">
      <view class="modal" style="width: 100%;height:500px;">
        <view class="container" style="heigth:66px;">
          <input type="text" v-model="keyWord" placeholder="请输入关键词搜索"
                 style="margin-left:5%;border-radius: 4px;height:36px;margin-top:4px;width: 65%;text-align: left;"
                 />
          <button @click="hideModal()" style="background-color: dodgerblue;color: white;width: 80px;">确定</button>
        </view>
        <view class="container" style="height:68px;margin-top: 10px;margin-bottom: 10px;">
          <button
              :style="{ border: isActiveCountry ? '1px solid dodgerblue' : '1px solid darkgray',color: isActiveCountry ? 'dodgerblue' : 'black'}"
              id="myCountrys" class="clicks showBtns" @click="changeCountry(0)">{
  { myCountry }}
          </button>
          <button
              :style="{ opacity: isopacityP ? '1' : '0',border: isActiveProvince ? '1px solid dodgerblue' : '1px solid darkgray',color: isActiveProvince ? 'dodgerblue' : 'black'}"
              id="myProvinces" class="clicks" @click="changeProvince(1)">{
  { myProvince }}
          </button>
          <button
              :style="{ opacity: isopacityC ? '1' : '0',border: isActiveCity ? '1px solid dodgerblue' : '1px solid darkgray',color: isActiveCity ? 'dodgerblue' : 'black'}"
              id="myCitys" class="clicks secondShow" @click="changeCity(2)" style="margin-right: 14%;">{
  { myCity }}
          </button>
        </view>
        <scroll-view id="my" :scroll-top="scTop" scroll-y="true" style=" height:400px;width: 100%;"
                     @scroll="handleScroll">


          <view  v-for="(item, index) in currentItemss" class="item" :key="index" :class="{ 'active': isActive(index) } "
               
                >
            {
  { item }}
          </view>
        </scroll-view>
        <!-- <button @click="hideModal">关闭</button> -->
        <view id="psd"></view>
      </view>
    </view>
  </view>
</template>

<script>
import countryData from 'data/countryData.js';
import _ from 'lodash';

export default {
  data() {
    return {
		fg:true,
      isActiveProvince: false,
      isopacityP: true,
      isopacityC: false,
      isActiveCity: false,
      isActiveCountry: true,
      activeIndex: 3, // 当前激活的列表项索引
      itemHeight: 50, // 假设每个列表项的高度是50  
      keyWord: "",
      isModalVisible: false,
      countryDataList: [
        [],
        [],
        []
      ],
      countryNum: 3,
      proviceNum: 0,
      cityNum: 0,
      types: 0,
      myCountry: "中国大陆",
      myProvince: "请选择",
      myCity: "请选择",
      currentListIndex: 0, // 当前显示的列表索引  
      selectedItem: null,
      oldpcountryDataList: countryData.data, // 假设countryData.data是一个包含国家、省份、城市的数组  
      currentItemss: ["请选择"],
      myProvinces: "",
      scTop: 0,
      scrollTimeout: null,
      flags: 0,//从国家到省份1,从省份到市2,从省份到国家3,从市到国家4,从市到省5,,
      pcount: 0,
      scropps: 0,
	  timer:null,
    };
  },

  methods: {
    originalScrollHandler(e) {
      
      if (this.types == 0) {
        //从国家到省份1,从省份到市2,从省份到国家3,从市到国家4,从市到省5,
        if (this.flags == 3) {

          this.activeIndex = this.coun
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个基于 PHP 技术实现的级联下拉框的示例代码,其中包含三个下拉框。 HTML 代码: ```html <select id="category1" onchange="getCategory2()"> <option value="">请选择分类1</option> <option value="1">分类1-1</option> <option value="2">分类1-2</option> <option value="3">分类1-3</option> </select> <select id="category2" onchange="getCategory3()"> <option value="">请选择分类2</option> </select> <select id="category3"> <option value="">请选择分类3</option> </select> ``` JavaScript 代码: ```javascript function getCategory2() { var category1 = document.getElementById("category1").value; if (category1 != '') { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var category2 = document.getElementById("category2"); category2.innerHTML = "<option value=''>请选择分类2</option>" + xhr.responseText; document.getElementById("category3").innerHTML = "<option value=''>请选择分类3</option>"; } }; xhr.open("GET", "getCategory2.php?category1=" + category1, true); xhr.send(); } else { document.getElementById("category2").innerHTML = "<option value=''>请选择分类2</option>"; document.getElementById("category3").innerHTML = "<option value=''>请选择分类3</option>"; } } function getCategory3() { var category2 = document.getElementById("category2").value; if (category2 != '') { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var category3 = document.getElementById("category3"); category3.innerHTML = "<option value=''>请选择分类3</option>" + xhr.responseText; } }; xhr.open("GET", "getCategory3.php?category2=" + category2, true); xhr.send(); } else { document.getElementById("category3").innerHTML = "<option value=''>请选择分类3</option>"; } } ``` PHP 代码(getCategory2.php): ```php <?php $category1 = $_GET["category1"]; if ($category1 == "1") { echo "<option value='1-1'>分类1-1-1</option><option value='1-2'>分类1-1-2</option>"; } else if ($category1 == "2") { echo "<option value='2-1'>分类1-2-1</option><option value='2-2'>分类1-2-2</option>"; } else if ($category1 == "3") { echo "<option value='3-1'>分类1-3-1</option><option value='3-2'>分类1-3-2</option>"; } ?> ``` PHP 代码(getCategory3.php): ```php <?php $category2 = $_GET["category2"]; if ($category2 == "1-1") { echo "<option value='1-1-1'>分类1-1-1-1</option><option value='1-1-2'>分类1-1-1-2</option>"; } else if ($category2 == "1-2") { echo "<option value='1-2-1'>分类1-1-2-1</option><option value='1-2-2'>分类1-1-2-2</option>"; } else if ($category2 == "2-1") { echo "<option value='2-1-1'>分类1-2-1-1</option><option value='2-1-2'>分类1-2-1-2</option>"; } else if ($category2 == "2-2") { echo "<option value='2-2-1'>分类1-2-2-1</option><option value='2-2-2'>分类1-2-2-2</option>"; } else if ($category2 == "3-1") { echo "<option value='3-1-1'>分类1-3-1-1</option><option value='3-1-2'>分类1-3-1-2</option>"; } else if ($category2 == "3-2") { echo "<option value='3-2-1'>分类1-3-2-1</option><option value='3-2-2'>分类1-3-2-2</option>"; } ?> ``` 在这个示例中,我们使用了三个下拉框,其中第一个下拉框的选项会影响第二个下拉框的选项,第二个下拉框的选项则会影响第三个下拉框的选项。在选择第一个下拉框的选项时,会通过 PHP 脚本获取第二个下拉框的选项数据,并更新第二个下拉框的选项。在选择第二个下拉框的选项时,会通过 PHP 脚本获取第三个下拉框的选项数据,并更新第三个下拉框的选项。希望这个示例对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

piaoyiren

谢谢你的欣赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值