在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

微信小程序之增、刪、改、查設置的代碼完成

微信小程序之增、刪、改、查設置的代碼完成

更新時間:2025-09-27 文章作者:未知 信息來源:網絡 閱讀次數:

微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一...
微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。
這篇文章主要介紹了微信小程序 增、刪、改、查操作實例詳解的相關資料,這里附有實例代碼,需要的朋友可以參考下

微信小程序 增、刪、改、查操作實例詳解

1.以收貨地址的增刪改查為例

2.文件目錄

微信小程序之增、刪、改、查操作的代碼實現

  1. js文件是邏輯控制,主要是它發送請求和接收數據,

  2. json 用于此頁面局部 配置并且覆蓋全局app.json配置,

  3. wxss用于頁面的樣式設置,

  4. wxml就是頁面,相當于html

<form bindsubmit="addSubmit">

<view class="consignee">

<text class="consignee-tit">收貨人信息</text>

<view class="consignee-main">

<view class="flex flex-align-center flex-pack-justify">

<text>姓名</text>

<input class="flex-1" name="name" type="number" maxlength="11" placeholder="請輸入收貨人姓名" />

</view>

<view class="flex flex-align-center flex-pack-justify">

<text>電話</text>

<input class="flex-1" name="mobile" type="number" maxlength="11" placeholder="請輸入手機號" />

</view>

<view class="flex flex-align-center flex-pack-justify">

<text>地址</text>

<input class="flex-1" name="address" type="text" maxlength="11" placeholder="請輸入地址" />

</view>

</view>

</view>

<view class="delivery-time flex flex-align-center flex-pack-justify">

<text>送貨時間</text>

<picker mode="date"></picker>

</view>

<view class="receipt-address">

<view class="receipt-address-tit">收貨地址信息</view>

<view wx:for="{{addressInfo}}" wx:key="unique">

<view class="receipt-address-list clearfix">

<image src="../../images/address-icon.png"></image>

<view class="address-list-main">

<view class="clearfix"><text>收貨地址{{item.address}}</text><text>1km</text></view>

<view class="address-info">收貨人{{item.name}}</view>

<view class="address-time">收貨人電話{{item.mobile}}</view>

<view data-deleteid="{{item.id}}" bindtap="deleteClick">刪除</view>

<view data-editid="{{item.id}}" bindtap="editClick">編輯</view>

</view>

</view>

</view>

</view>

<view class="receipt-true">

<button class="btn_login" formType="submit">保存</button>

</view>

</form>

前端頁面主要展示一個表單和已有收貨人信息

1.其中幾個關鍵點需要理解

a.Form表單,需要綁定一個submit事件,在小程序中,屬性為bindsubmit,

bindsubmit=”formSubmit” 這里的屬性值formSubmit,命名可以為符合規范的任意值,相當于以前html中的 onsubmit=”formSubmit()”,是一個函數名,當提交的時候觸發formSubmit這個函數事件,這個函數寫在js中。

b.其他的屬性和之前的HTML差不多,注意的是,表單一定要有name=“value”,后端處理和以前一樣,比如name=”username” PHP可以用 $_POST[‘username']來接收。

c.由于小程序沒有input submit這個按鈕,所以在每個form表單中都要有一個提交按鈕,

<button formType="submit">注冊</button>,這個按鈕就是用來開啟提交事件的。

至于循環,拆開解

d.小程序給我們一個封裝好的方法onLoad: function(),當頁面加載的時候,調用這個方法。

var app = getApp()

Page({

data:{},

 onLoad: function() {

  var that = this;

  //收貨地址首頁

  wx.request({

   //缺少用戶唯一標識,現在的在服務器的控制器里有一個假id = 2

   url: 'https://shop.yunapply.com/home/shipping/index',

   method: 'GET',

   data: {},

   header: {

     'Accept': 'application/json'

   },

   success: function(res) {

    that.setData({

      "addressInfo": res.data.info,

    })

    console.log(res.data.info);

   },

   fail:function(){

       wx.showToast({

        title: '服務器網絡錯誤!',

        icon: 'loading',

        duration: 1500

       })

      }

  })

 }

})

收貨地址的首頁,用于拉取當前用戶已有的收貨地址

var that = this;

不知道為什么要這樣做,可能是為了避免this 沖突或者語意不明確,將當前的對象,賦值給變量that

wx.request({})發起https請求

url: 'https://shop.com/home/shipping/index',所需要請求的網址接口

method: 'GET',請求的方式,默認是GET,當時POST的時候,必須聲明

data: {},發送的請求的數據

header: {},發送的頭信息,

GET方式的頭信息為:'Accept': 'application/json'

POST方式的頭信息為:"Content-Type": "application/x-www-form-urlencoded"

success:function() 請求成功調用的方法

Fail:function() 請求失敗調用的方法

success: function(res) {

    that.setData({

      "addressInfo": res.data.info,

    })

   },

res為調用成功以后服務器端返回的數據,

that.setData({"addressInfo": res.data.info,}) 添加數據到當前頁面的data對象,鍵名為addressInfo,鍵值是返回的數據,我需要的是res的data對象的info對象的所有信息

fail:function(){

       wx.showToast({

        title: '服務器網絡錯誤!',

        icon: 'loading',

        duration: 1500

       })

      }

網絡請求失敗調用的方法

showToast類似于JS中的alert,彈出框,title 是彈出框的顯示的信息,icon是彈出框的圖標狀態,目前只有loading 和success這兩個狀態。duration是彈出框在屏幕上顯示的時間。

a.url是你請求的網址,比如以前在前端,POST表單中action=‘index.php',這里的index.php是相對路徑,而小程序請求的網址必須是網絡絕對路徑。

b.'https://shop.yunapply.com/home/shipping/index',以GET方式請求HOME模塊下的Shipping控制下的index方法

c.將得到的值添加到data里

看HOME模塊下的Shipping控制下的index方法

public function index()
{
  //$id 為用戶名id 等以后可以通過token獲取或者session(id)什么的
  $use_id = 2;
  $res = D('Shipping')->getAddress($use_id);
  if ($res == false){
    $this->error('暫無收貨地址','',true);
  }else{
    $this->success($res,'',true);
  }

}

查看Shipping模型中的getAddress()方法

/**
 * 獲取收貨地址信息
 * @param $id 當前用戶id
 * @return 屬于用戶的所有地址
 */
public function getAddress($id)
{
  $address_list = $this->where(array('user_id'=>$id))->select();
  if ($address_list == false){
    return false;
  }
  return $address_list;
}

這樣就根據用戶是否有地址還返回相應的JSON數據

本例子的JSON數據是

{"info":[{"id":"4","user_id":"2","name":"addTest","mobile":"15162550544","province":"",
"city":"","district":"","address":"44563","createtime":"2017-01-10 18:45:27"
,"modifytime":"2017-01-10 18:45:27","default":"0"}],"status":1,"url":""}

請求成功以后就將JSON添加到data{}中,并設置鍵值為addressInfo

那么接下來就是將這些信息展示在前端頁面上

<view wx:for="{{addressInfo}}" wx:key="unique">

<view class="receipt-address-list clearfix">

<image src="../../images/address-icon.png"></image>

<view class="address-list-main">

<view class="clearfix"><text>收貨地址{{item.address}}</text><text>1km</text></view>

<view class="address-info">收貨人{{item.name}}</view>

<view class="address-time">收貨人電話{{item.mobile}}</view>

<view data-deleteid="{{item.id}}" bindtap="deleteClick">刪除</view>

<view data-editid="{{item.id}}" bindtap="editClick">編輯</view>

</view>

</view>

</view>

控制屬性 wx:for 綁定一個數組,就是JS中的addressInfo這個數組,默認數組的當前項的下標變量名默認為index,數組當前項的變量名默認為item ?梢愿鶕䓖{item.address}}、{{item.name}}、{{item.mobile}}、{{item.id}}獲取到當前數據的地址、收貨人、電話和該條信息的id

循環之后就可以按照格式展示所有地址信息了,相當于TP模板中的foreach

在前臺模板的循環數據里可以看到這樣一條標簽

event.currentTarget.dataset.deleteid;表示事件對象的目標的data-*的值

bindtap屬性是微信在模板頁中綁定點擊事件,deleteClick為觸發時間的方法名

在index.js中,刪除代碼如下:

//刪除地址

 deleteClick:function(event){

  var id = event.currentTarget.dataset.deleteid;

  wx.request({

   url: 'https://shop.yunapply.com/home/shipping/delAddress?id='+id,

   data: {},

   method: 'GET',

   success: function(res){

    if(res.data.status == 0){

     wx.showToast({

      title: res.data.info,

      icon: 'loading',

      duration: 1500

     })

    }else{

     wx.showToast({

      title: res.data.info,

      icon: 'success',

      duration: 1000

     })

     //刪除之后應該有一個刷新頁面的效果,等和其他頁面刷新跳轉一起做

    }

   },

   fail:function(){

       wx.showToast({

        title: '服務器網絡錯誤!',

        icon: 'loading',

        duration: 1500

       })

      }

  })

 }

點擊前端刪除按鈕的時候,觸發deleteClick事件,可以傳入一個參數,代表事件對象。

event.currentTarget.dataset.deleteid;表示事件對象的目標的data-*的值

然后通過GET方式傳入url,在服務器端刪除功能如下

public function delAddress($id)
{
  $res = D('Shipping')->where(array('id'=>$id))->delete();
  if ($res){
    $this->success('刪除成功','',true);
  }else{
    $this->error('刪除失敗','',true);
  }
}

根據返回的JSON值就可以提示刪除成功與否

增、改

之前覺得增加和修改會和表單提交一樣簡單,但是做了一些還是覺得不一樣,好好在寫一遍。

首先查看前臺表單

<form bindsubmit="addSubmit">

<view class="consignee">

<text class="consignee-tit">收貨人信息</text>

<view class="consignee-main">

<input name="id" type="hidden" value="{{addressEdit.id}}" />

<view class="flex flex-align-center flex-pack-justify">

<text>姓名</text>

<input class="flex-1" name="name" type="number" value="{{addressEdit.name}}" maxlength="11" placeholder="請輸入收貨人姓名" />

</view>

<view class="flex flex-align-center flex-pack-justify">

<text>電話</text>

<input class="flex-1" name="mobile" type="number" value="{{addressEdit.mobile}}" maxlength="11" placeholder="請輸入手機號" />

</view>

<view class="flex flex-align-center flex-pack-justify">

<text>地址</text>

<input class="flex-1" name="address" type="text" value="{{addressEdit.address}}" maxlength="-1" placeholder="請輸入地址" />

</view>

</view>

</view>

<view wx:for="{{addressInfo}}" wx:key="unique">

<view class="receipt-address-list clearfix">

<image src="../../images/address-icon.png"></image>

<view class="address-list-main">

<view class="clearfix"><text>收貨地址{{item.address}}</text><text>1km</text></view>

<view class="address-info">收貨人{{item.name}}</view>

<view class="address-time">收貨人電話{{item.mobile}}</view>

  <view data-deleteid="{{item.id}}" bindtap="deleteClick">刪除</view>

<view data-editid="{{item.id}}" bindtap="editClick">編輯</view>  <view class="receipt-true">

<button class="btn_login" formType="submit">保存</button>

</view>

</form>

a.Form表單,需要綁定一個submit事件,在小程序中,屬性為bindsubmit,

bindsubmit=”formSubmit” 這里的屬性值formSubmit,命名可以為符合規范的任意值,相當于以前html中的 onsubmit=”formSubmit()”,是一個函數名,當提交的時候觸發formSubmit這個函數事件,這個函數寫在js中。

b.其他的屬性和之前的HTML差不多,注意的是,表單一定要有name=“value”,后端處理和以前一樣,比如name=”username” PHP可以用 $_POST[‘username']來接收。

c.由于小程序沒有input submit這個按鈕,所以在每個form表單中都要有一個提交按鈕,

<button formType="submit">注冊</button>,這個按鈕就是用來開啟提交事件的。

d.由于添加地址和編輯地址都是在一個頁面的,所以我需要在每個表單中,加一個默認值變量,當點擊修改的時候,默認值就顯示在輸入框中。

e.表單中有一個編輯,綁定了事件editClick,當點擊這個按鈕的時候,就會進入編輯模式

添加和修改的放在一個函數里面,但是修改數據的顯示是另外一個函數

先說修改,點點擊編輯的時候,觸發editClick事件

JS如下:

editClick:function(event){

  var that = this;

  var id = event.currentTarget.dataset.editid;

  wx.request({

   url: 'https://shop.yunapply.com/home/shipping/edit?id='+id,

   data: {},

   method: 'GET',

   success: function(res){

    if(res.data.status == 0){

     wx.showToast({

      title: res.data.info,

      icon: 'loading',

      duration: 1500

     })

    }else{

     that.setData({

       "addressEdit": res.data.info,

     })

    }

   },

   fail:function(){

       wx.showToast({

        title: '服務器網絡錯誤!',

        icon: 'loading',

        duration: 1500

       })

      }

  })

 },

為了更好理解,貼個圖

微信小程序之增、刪、改、查操作的代碼實現

最下面有一個保存按鈕,當點擊編輯的時候,觸發editClick:function(event),這個event是當前觸發事件的對象,

var id = event.currentTarget.dataset.editid; 就是獲取當前事件對象的dataset中的editid的值,這里id是當前地址的id

url: 'https://shop.com/home/shipping/edit?id='+id

Wx.request 的url,將id值放在url上,作為GET參數,傳遞到服務器。

data: {},是需要額外傳遞的數據

method: 'GET', 是數據傳遞方式 默認是“GET”,保持大寫

data:{mobile:e.detail.value.mobile,password:e.detail.value.password},

這里的data就是POST給服務器端的數據 以{name:value}的形式傳送

success:function()是請求狀態成功觸發是事件,也就是200的時候,注意,請求成功不是操作成功,請求只是這個程序到服務器端這條線的通的。

fail:function()就是網絡請求不成功,觸發的事件。

這里的一段代碼是和PHP后端程序有關系的,具體流程是這樣的,

1.GET通過數據到https://shop.com/home/Shipping/edit這個接口,用過THINKPHP的就會知道是HOME模塊下的Shipping控制下的edit方法

2.后端PHP代碼如下:

控制器 ShippingController.class.php

public function edit($id)
{
  $res = D('Shipping')->find($id);
  $this->success($res,'',true);
}

也就是說將這條數據取出來,沒什么好說的。

 that.setData({

       "addressEdit": res.data.info,

     })

    }

這里請求成功以后,調用小程序 setData方法,將服務器端返回的信息放到addressEdit[]中,然后在前端頁面調用{{addressEdit.id}}、{addressEdit.name}}、{addressEdit.mobile}}、{addressEdit.address}}將數據展示出來,這就是修改時候的操作。

接下來是提交表單的操作

Js代碼如下

addSubmit:function(e){

  if(e.detail.value.mobile.length==0||e.detail.value.name.length==0 ||e.detail.value.address.length==0){

   wx.showToast({

    title: '收貨人所有信息不得為空!',

    icon: 'loading',

    duration: 1500

   })

  }else if(e.detail.value.mobile.length != 11){

    wx.showToast({

    title: '請輸入11位手機號碼!',

    icon: 'loading',

    duration: 1500

   })

  }else{

   wx.request({ 

      url: 'https://shop.yunapply.com/home/shipping/save', 

      header: { 

       "Content-Type": "application/x-www-form-urlencoded" 

      },

      method: "POST",

      data:{id:e.detail.value.id,mobile:e.detail.value.mobile,name:e.detail.value.name,address:e.detail.value.address},

      success: function(res) {

       if(res.data.status == 0){

         wx.showToast({

          title: res.data.info,

          icon: 'loading',

          duration: 1500

         })

       }else{

         wx.showToast({

          title: res.data.info,

          icon: 'success',

          duration: 1000

         })

         setTimeout(function(){

          wx.navigateTo({

           url:'../address/index'

          })

         },1000)

       }

      },

      fail:function(){

       wx.showToast({

        title: '服務器網絡錯誤!',

        icon: 'loading',

        duration: 1500

       })

      }  

     })

  }

 }

在前端的FORM表單中,當點擊formtype=“submit”這個按鈕的時候,觸發addSubmit事件,前面的if都是JS驗證,防止用戶不填寫信息。

1.其他的request請求差不多,找幾個不一樣的

url: 'https://shop.yunapply.com/home/shipping/save',

調用服務器端的save方法

  header: { 

    "Content-Type": "application/x-www-form-urlencoded" 

   },

由于POST和GET傳送數據的方式不一樣,POST的header必須是

"Content-Type": "application/x-www-form-urlencoded"

GET的header可以是 'Accept': 'application/json'

 data:{id:e.detail.value.id,mobile:e.detail.value.mobile,name:e.detail.value.name,address:e.detail.value.address},

這里是需要POST到服務器端的數據

Save方法代碼

public function save()
{
  //$user_id
  $user_id = 2;
  if (IS_POST){
    $shipping = D('Shipping');
    if (!$shipping->create()){
      $this->error($shipping->getError(),'',true);
    }else{
      if (is_numeric($_POST['id'])){
        if ($shipping->editAddress($_POST['id'])){
          $this->success('地址修改成功','',true);
        }else{
          $this->error('地址修改失敗','',true);
        }
      }else{
        if ($shipping->addAddress($user_id)){
          $this->success('添加地址成功','',true);
        }else{
          $this->error('添加地址失敗','',true);
        }
      }
    }
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

微信小程序 向左滑動刪除功能的實現

微信小程序button組件的使用介紹

以上就是微信小程序之增、刪、改、查操作的代碼實現的詳細內容,更多請關注php中文網其它相關文章!


小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 午夜免费高清视频| 青青草av网站| 国产尤物av一区二区三区| 噼里啪啦国语在线观看免费版高清版| 无限资源日本好片| 一本色道无码道dvd在线观看| 国产欧美精品一二三| 国产一级片中文字幕| 永久免费黄色片| 欧美少妇一级片| 自拍偷拍一区二区三区四区| 潘金莲一级淫片aaaaa免费看| 免费看污污网站| 久久久久久av无码免费网站下载| 在线观看av的网址| www.com毛片| 东北少妇不带套对白| 国产美女作爱全过程免费视频| 亚洲免费视频播放| 免费黄色日本网站| 亚洲少妇久久久| 六月丁香激情网| 中文字幕成人免费视频| 欧美一级特黄aaaaaa在线看片| 毛毛毛毛毛毛毛片123| 欧美成年人视频在线观看| 四虎免费在线观看视频| 污污视频在线免费| 成熟了的熟妇毛茸茸| youjizz.com在线观看| www国产精品内射老熟女| 日本欧美视频在线观看| xxx中文字幕| 欧美日韩激情视频在线观看 | 色片在线免费观看| 深爱五月综合网| 午夜啪啪小视频| 免费看的黄色大片| 亚洲不卡视频在线| av动漫免费看| 热久久精品免费视频| 亚洲欧美在线精品| 想看黄色一级片| 欧美二区在线视频| 色一情一区二区三区| 狠狠热免费视频| 黄色国产小视频| 精品一卡二卡三卡| 一级片视频免费观看| 成人黄色一区二区| 欧美做受777cos| www.av片| 日韩中文字幕在线免费| 日本黄大片一区二区三区| 国产天堂视频在线观看| av五月天在线| 青青草综合视频| 黄色录像特级片| 韩国日本在线视频| 蜜臀久久99精品久久久酒店新书| 欧美日韩黄色一级片| 欧美专区第二页| av磁力番号网| 成人免费看片视频在线观看| 成人在线免费观看av| 人妻av中文系列| 国产美女三级视频| 久久久久福利视频| 日本熟妇人妻中出| 丰满人妻一区二区三区53号 | 大桥未久一区二区三区| 精品日韩久久久| av免费网站观看| 91传媒久久久| 99免费视频观看| 99精品在线免费视频| 久久久亚洲国产精品| av网站大全免费| 成人在线观看你懂的| av免费观看网| 欧美黑人又粗又大又爽免费| 北条麻妃av高潮尖叫在线观看| 免费欧美一级视频| www国产黄色| 日本激情综合网| 欧美国产视频一区| 男女高潮又爽又黄又无遮挡| 人妻无码视频一区二区三区| 国产精品嫩草影院8vv8| www亚洲国产| 国产裸体免费无遮挡| 91视频这里只有精品| 污免费在线观看| 99视频在线免费播放| 黄色三级视频片| 国产三级三级看三级| 男人插女人视频在线观看| 国产成人黄色网址| 成人性免费视频| 人人妻人人澡人人爽精品欧美一区| 99sesese| 色片在线免费观看| 男女曰b免费视频| 一本之道在线视频| 亚洲欧美在线精品| 在线免费av播放| 鲁一鲁一鲁一鲁一av| 国产va亚洲va在线va| 真人抽搐一进一出视频| 国产视频在线观看网站| 成人一级生活片| 国产毛片久久久久久国产毛片| 韩国黄色一级大片| 成人毛片一区二区| 日韩日韩日韩日韩日韩| 亚洲一区二区三区四区五区xx| 亚洲av综合色区| 欧美性猛交xxx乱久交| www.欧美黄色| 国产麻豆电影在线观看| 污视频网址在线观看| 人妻少妇被粗大爽9797pw| 糖心vlog在线免费观看| 国产日韩视频在线播放| 欧美美女性视频| 亚洲图片 自拍偷拍| 视频二区在线播放| 亚洲综合av在线播放| 中文字幕第17页| 中文字幕在线综合| 亚洲一二三不卡| 大片在线观看网站免费收看| 97人人模人人爽人人澡| 日韩美女爱爱视频| 日日橹狠狠爱欧美超碰| 茄子视频成人免费观看| 91在线视频观看免费| 玖玖精品在线视频| 国产精品成人久久电影| 校园春色 亚洲色图| 亚洲av毛片在线观看| 欧美日韩一区二区三区69堂| 精品一卡二卡三卡| 男人靠女人免费视频网站 | 日本三级中文字幕在线观看| 欧美另类videosbestsex日本| 成人久久久久久久久| 国产高清av在线播放| 国产免费xxx| 无码人妻少妇伦在线电影| 日本不卡在线观看视频| 97人人爽人人| 久久久精品三级| 喜爱夜蒲2在线| 日韩一二区视频| 奇米影音第四色| 久久久久久久片| 99久久久无码国产精品6| 精品人妻少妇一区二区| www.亚洲一区二区| 大桥未久一区二区三区| 亚洲一级免费观看| 天天综合天天添夜夜添狠狠添| 中国丰满人妻videoshd| 成年人小视频网站| 手机看片福利日韩| 日本免费在线视频观看| 中文字幕超清在线免费观看| www.污污视频| 日韩小视频在线播放| 黄色动漫在线免费看| 男女视频一区二区三区| 9久久婷婷国产综合精品性色| 宅男噜噜噜66国产免费观看| 亚洲一区二区三区四区五区xx| 日本黄色福利视频| 国产欧美123| 91插插插影院| 国产黄视频在线| 国产精品无码电影在线观看| 国产午夜大地久久| 四虎1515hh.com| 中文字幕在线导航| a级黄色小视频| 日韩视频在线观看一区二区三区| 国产又粗又长又爽视频| 日韩精品一区中文字幕| 搞av.com| www.好吊操| 国产一区 在线播放| 一级黄色免费在线观看| 日韩肉感妇bbwbbwbbw| 日本a级片免费观看| 丁香六月激情婷婷| 日本五级黄色片| 性高湖久久久久久久久aaaaa| 性鲍视频在线观看| 影音先锋成人资源网站| youjizz.com亚洲| 奇米精品一区二区三区|