微信小程序制作表格

 

  <div class="tb-body">
    <div class="tb-head">
      <div class="th">标题一</div>
      <div class="th">标题一</div>
      <div class="th">标题一</div>
      <div class="th">标题一</div>
      <div class="th">标题一</div>
      <div class="th">标题一</div>
      <div class="th">标题一</div>
    </div>
    <div v-for="(item,index) in listData" class="tb-data">
      <div class="td">{{ item.id}}</div>
      <div class="td">{{ item.name}}</div>
      <div class="td">{{ item.test}}</div>
      <div class="td">{{ item.id}}</div>
      <div class="td">{{ item.name}}</div>
      <div class="td">{{ item.test}}</div>
      <div class="td">{{ item.test}}</div>
    </div>
  </div>
.tb-body {
  overflow-x: auto;
  white-space: nowrap;
  word-break: keep-all;

  .tb-head {
    color: #909090;
  }

  .tb-head, .tb-data {
    display: table-row;
    text-align: center;
  }

  .tb-head .th, .tb-data .td {
    display: table-cell;
    padding: 5px 10px;
    border-bottom: 1px solid #EBEBEB;
  }

}

### 微信小程序表格组件源码示例 以下是实现一个具有固定表头、自适应列宽、单元格点击事件支持以及斑马线样式的微信小程序表格组件的代码示例: #### WXML 文件 ```xml <view class="table-container"> <!-- 表头 --> <view class="header-row"> <view class="cell header-cell" wx:for="{{headers}}" wx:key="*this">{{item}}</view> </view> <!-- 数据行 --> <block wx:for="{{data}}" wx:key="index"> <view class="row {{index % 2 === 0 ? 'even' : 'odd'}}" bindtap="onCellTap" data-index="{{index}}"> <view class="cell" wx:for="{{item}}" wx:key="*this">{{it}}</view> </view> </block> </view> ``` #### WXSS 文件 ```css .table-container { width: 100%; overflow-x: auto; } .header-row, .row { display: flex; border-bottom: 1px solid #ccc; } .cell { padding: 8px; text-align: center; min-width: 100px; /* 自定义宽度 */ box-sizing: border-box; } .header-cell { font-weight: bold; } .even { background-color: #f9f9f9; } .odd { background-color: #fff; } ``` #### JS 文件 ```javascript Page({ data: { headers: ['姓名', '年龄', '性别'], // 表头数据 data: [ ['张三', 25, '男'], ['李四', 30, '女'], ['王五', 22, '男'] ] // 表格数据 }, onCellTap(e) { // 单元格点击事件 const index = e.currentTarget.dataset.index; console.log('第 ' + (index + 1) + ' 行被点击'); } }); ``` 此代码实现了基本的功能需求,包括但不限于固定的表头设计[^1]、通过 `bindtap` 实现的单元格点击事件支持、以及利用 CSS 类名区分奇偶行来创建斑马线样式。 --- ### 关于 PHP 后端与微信小程序结合的部分说明 如果需要进一步扩展该表格功能,比如动态加载数据,则可以参考 PHP 构建的后端服务。例如,《PHP实例开发:追格微信小程序应用商店源码解析》一书中提到的核心技术可以帮助开发者理解如何通过 HTTP 请求获取服务器上的 JSON 数据并渲染到前端页面中[^2]。 假设后台返回的数据结构如下: ```json { "headers": ["姓名", "年龄", "性别"], "data": [["张三", 25, "男"], ["李四", 30, "女"]] } ``` 则可以通过 `wx.request` 方法从 PHP 接口拉取这些数据,并将其赋值给上述代码中的 `headers` 和 `data` 变量。 --- ### 使用 Form 提交数据至后端 对于更复杂的场景,可能还需要将表格内的某些字段提交回后端保存。此时可借助 `<form>` 组件完成操作。需要注意的是,在绑定按钮时应指定属性 `form-type="submit"` 并设置对应的键值对关系[^3]。 示例代码片段如下所示: ```xml <form bindsubmit="handleSubmit"> <input type="text" name="name" placeholder="请输入姓名"/> <button form-type="submit">提交</button> </form> ``` 对应 JavaScript 处理函数为: ```javascript handleSubmit(e) { const formData = e.detail.value; console.log(formData); // 此处可通过 wx.request 将数据发送到 PHP 后台接口 } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值