m0_62833091 2022-08-26 10:43 采纳率: 66.7%
浏览 92
已结题

微信小程序自定义下拉菜单如何插入到数据库中?

在微信小程序中,微信小程序中picker组件,不够直观,所以在component中自定义了一个二级下拉菜单组件,现在不知道该如何把下拉菜单中的数据插入到数据库中去,求大师们的帮助,代码可以直接复制过去进行调试。如果能视频类教程更好,效果如图:

img


详细代码如下:




<view class="list-select">
    <view class="position">招聘职位</view>
    <view class="select-box">
        <view class="select {{shownavindex == 1? 'active' : ''}}" bindtap="list" data-nav="1">
            <view class="content" >{{quanbu_name}}</view>
        </view>
    </view>
    <view class="icon-group">
        <view class="select {{shownavindex == 1? 'active' : ''}}" bindtap="list" data-nav="1">
            <icon class="icon"></icon>
        </view>
    </view> 
</view>

<view class="gongzhong  {{gzopen ? 'slidown' : 'slidup'}} {{gzshow ? 'disappear':''}}">
    <view class="gz gz-left">
        <view class="view {{select1 == index ? 'current1' : ''}}" wx:for="{{gz}}" wx:key="key" bindtap="gzselectLeft"
            data-index='{{index}}'>
            {{index}}
        </view>
    </view>
    <view class="gz gz-right">
        <view class="view {{select2 == item?'current2':''}}" wx:for="{{gzright}}" wx:key="key" wx:if="{{gzright}}"
            bindtap='gzselectRight' data-index="{{item}}">
            <text>{{item}}</text>
        </view>
    </view>
    <view class='form-btn'>
        <button class='btn-reset' bindtap='gzEmpty'>重置</button>
        <button class='btn-submit' bindtap='gzFilter'>确定</button>
    </view>
    <view class="fullbg {{isfull ?'fullopacity':''}}" bindtap="hidebg"></view>
</view>


/* components/selecttwo/selectteo.wxss */

.list-select{
  /*字体类型*/
  font-family: 'PingFang SC',/*平方简*/
              'Helvetica Neue',/*新的赫维提卡字体*/
               Helvetica,/*赫维提卡字体*/
               'Droid Sans Fallback',/*默认字体*/
             'Microsoft Yahei',/*微软雅黑*/
              sans-serif;/*无衬线体*/
 height: 100%;/*高度*/
 background: #fff;/*背景颜色*/
 overflow: hidden;/*溢出隐藏*/
 align-items:center;
 display:flex;
 flex-direction:row;
}
.list-select .position{
  font-size:32rpx;
  flex-basis:160rpx;
}
.select-box {
  /* position: relative; */
  /*相对定位*/
  /* z-index: 99; */
  /*属性设置元素堆叠顺序,参数越大越靠前*/
  /* display: flex;弹性布局 */
  /* flex:1;
  background: #fff;
  justify-content:space-around;
  width:0;
  border-bottom:1px solid #cfcece; */
  width: 100%;
  display: block;
  font-size: 30rpx;
  justify-content: center;
  flex-direction: row;
  border-bottom: 1px solid #cfcece;
  text-align: center;
}

.select {
  display: flex;
  flex:1;
  text-align: center;/*水平对齐*/
  height: 40rpx;
  align-items: center;/*居中对齐*/
  justify-content: center;/*水平居中*/
  font-size: 28rpx;
  white-space: nowrap;/*强制内容在一行显示*/
  overflow: hidden;/*溢出隐藏*/
  text-overflow: ellipsis;/*溢出隐藏*/
}
.content {
 display: inline-block;/*内块元素,从左到右排列*/
 font-size: 28rpx;
 color: #666;
}
.icon-group{
  flex-basis:30rpx;
  display:flex;
  flex-direction:row-reverse;
  margin-right:10rpx;
  border-bottom:1px solid #cfcece;
}
.icon {
  display:inline-block;
  border: 10rpx solid transparent;
  /*三角形边框*/
  border-top: 10rpx solid #666;
  /*上边框*/
  margin-left: 10rpx;
  /*左边距*/
  margin-top: 10rpx;
  /*右边距*/
}

.current1 {
 color:#da3131;
}

.current2 {
 color: #da3131;
}

.slidown {
  display: block;
  animation: slidown 0s ease-in both;
 }
 @keyframes slidown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0%);
  }
 }
 @keyframes slidup {
  from {
    transform: translateY(0%);
  }
  to {
    transform: translateY(-100%);
  }
 }
.slidup {
  display: block;
  top:0rpx;
  animation: slidup 0s ease-in both;
}
.form-btn {
  width: 100%;
  display: flex;
  height: 98rpx;
  font-size: 32rpx;
  justify-content: center;
  align-items: center;
 }
.btn-reset {
 background-color: #999;
}

.btn-submit {
 background-color: #e35b27;
 color: #fff;
}

.gongzhong {
 position:absolute;/*绝对定位*/
 right:0;
 width:100%;
 height: 900rpx;
 z-index: 5;/*属性设置元素堆叠顺序,参数越大越靠前*/
 background: #fff;
}
.gongzhong .gz {
  overflow-y: scroll;
  float: left;
  width: 50%;
  height: 82%;
  line-height: 80rpx;/*行高*/
  box-sizing: border-box;/*盒子模型:宽高包含了内容,距离,和边框*/
  font-size: 28rpx;
  color: #717273;
  border-right: 1rpx solid #f4f4f4;/*右边框线*/
 }
 .gz .view {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  padding-left: 45rpx;
  border-bottom: 1rpx solid #f4f4f4;
 }
 .gz-right {
  background: #f5f5f5;
 }
.slidedown/*滑动效果及点击空白隐藏*/ {
 transform: translateY(0%);/*像素位移*/
}

// components/selecttwo/selectteo.js
Component({

  /**
   * 组件的属性列表
   */
  properties: {
     
  },
  /**
   * 组件的初始数据
   */
  data: {
    quanbu_name:"请选择您的招聘职位",
    gz:{
      
      "计算机/互联网/通信/电子":["技术工程师","机械设计","PLC编程""车工","焊工","铣工","磨床","","车工",],
      "后端开发":["Java开发工程师","PHP开发工程师","C/C++开发工程师",   "Python开发工程师","NET开发工程师","C#开发工程师","Ruby开发工程师","Go开发工程师","大数据开发工程师","Hadoop工程师","爬虫开发工程师","脚本开发工程师","多媒体开发工程师","GIS开发工程师","全栈开发工程师","ERP开发工程师","区块链开发","高级软件工程师","软件工程师","系统架构设计师","系统分析员","技术文员/助理","技术文档工程师","其他",],
      "自动化技术":["钳工","焊工","电工","调试",],
    },
    gzopen: false, //选择工种筛选弹窗
    gzshow: true,
    isfull: false,
    select1: ''//选中后的第二个子菜单,默认显示工种下的子菜单
    select2: ''//选择部分的中间
    shownavindex: '',
    gzIndex: 0,
  },
  onLoad: function (options) {
    this.setData({
      select:!this.data.select
    })
  },

  /**
   * 组件的方法列表
   */
  methods: {
      // 列表下拉框是否隐藏
    list: function(e) {
      if (this.data.gzopen) {
        this.setData({
          content: this.data.nv,
          gzopen: false,
          gzshow: false, 
          isfull: false,
          shownavindex: 0
        })
      } else {
        this.setData({
          gzopen: true,
          gzshow: false,
          isfull: true,
          shownavindex: e.currentTarget.dataset.nav
        })
      }
    },
    // 点击灰色背景隐藏所有的筛选内容
    hidebg: function(e) {
      this.setData({
        gzopen: false,
        gzshow: true,
        isfull: false,
        shownavindex: 0,
      })
    },
    // 选择工种第一栏选择内容
    gzselectLeft: function(e) {
      // console.log(e);
      var name=e.currentTarget.dataset.index;
      // console.log('用户选中左边菜单栏的索引值是:'+e.target.dataset.index);
      this.setData({
        quanbu_name:name,
        gzright:this.data. gz[e.currentTarget.dataset.index],
        select1: e.target.dataset.index,
      });
    },
    // 选择工种右边栏选择的内容
    gzselectRight: function(e) {
      // console.log(e);
      var name=e.currentTarget.dataset.index;
      // console.log(''+e.currentTarget.dataset.index);
      this.setData({
        quanbu_name:name,
        select2: e.currentTarget.dataset.index
      });
    },
    // 选择工种清空筛选项
    gzEmpty: function() {
      this.setData({
        select1: '',
        select2: '-1'
      })
    },
    // 选择工种筛选项后,点击提交
    gzFilter: function() {
      // console.log('选择的一级选项是:' + this.data.select1);
      // console.log('选择的二级选项是:' + this.data.select2);
      // 隐藏选择工种下拉框
      this.setData({ 
        gzopen: false,
        gzshow: false,
        isfull: false,
        shownavindex: 0
      })
    },
  }
})


<selecttwo name="position"></selecttwo>
  • 写回答

2条回答 默认 最新

  • 崽崽的谷雨 2022-08-26 11:06
    关注
    获得1.85元问题酬金

    插入数据库 。那需要 一个接口 。前端把 选中的值传过去 。后端接收 并 插入数据库

    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 9月3日
  • 赞助了问题酬金5元 8月26日
  • 创建了问题 8月26日

悬赏问题

  • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
  • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
  • ¥20 C#上传XML格式数据
  • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
  • ¥100 单片机hardfaulr
  • ¥20 手机截图相片分辨率降低一半
  • ¥50 求一段sql语句,遇到小难题了,可以50米解决
  • ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
  • ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
  • ¥15 虚拟机检测,可以是封装好的DLL,可付费