国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

微信小程序搜索功能(附:小程序前端+PHP后端)

2019-11-19 12:03:46
字體:
供稿:網(wǎng)友

開發(fā)需求

微信小程序已經(jīng)是非常火了,而且學習也比較容易,但是對于初學者來說還是一件比較傷腦筋的事,接下來給大家分享一下小程序搜索的思路。

流程

1、表單(輸入框、提交按鈕、提交的name值)
2、接收表單數(shù)據(jù)(js獲取表單name=keyword的值)
3、通過wx.request向服務器后端發(fā)起請求查詢數(shù)據(jù)庫
4、返回JSON格式的數(shù)據(jù)給小程序,js解析渲染到小程序前端展示

界面

代碼

index.wxml

<!-- 標題 --><view class="title">小程序搜索</view><!-- 搜索框view --><view class="search_con"><!-- 表單 --> <form bindsubmit="formSubmit"> <!-- 記得設置name值,這樣JS才能接收name=keyword的值 -->  <input type="text" name="keyword" class="search_input" placeholder='你要找什么呢?'/>  <button formType="submit" class="search_btn">搜索</button>   </form></view><!-- 搜索結(jié)果展示 --><view wx:for="{{re}}" wx:key="re" class="search_result"><!-- 當提交空白表單的時候 --> <view class="empty">{{item.empty}}</view> <!-- 當有搜索結(jié)果的時候 --> <view class="resname">{{item.resname}}</view> <!-- 當查詢不到結(jié)果的時候 --> <view class="noresult">{{item.noresult}}</view></view>

index.js

其中里面的

http://localhost/search.php?keyword=

是服務器后端接口,用于接收小程序傳過去的關鍵詞的,下面會有這個后端PHP文件。

const app = getApp()Page({ data: {}, //執(zhí)行點擊事件 formSubmit: function (e) {  //聲明當天執(zhí)行的  var that = this;  //獲取表單所有name=keyword的值  var formData = e.detail.value.keyword;  //顯示搜索中的提示  wx.showLoading({   title: '搜索中',   icon: 'loading'  })  //向搜索后端服務器發(fā)起請求  wx.request({   //URL   url: 'http://localhost/search.php?keyword=' + formData,   //發(fā)送的數(shù)據(jù)   data: formData,   //請求的數(shù)據(jù)時JSON格式   header: {    'Content-Type':'application/json'   },   //請求成功   success: function (res) {    //控制臺打印(開發(fā)調(diào)試用)    console.log(res.data)    //把所有結(jié)果存進一個名為re的數(shù)組    that.setData({     re: res.data,    })    //搜索成功后,隱藏搜索中的提示    wx.hideLoading();   }  }) },})

index.wxss

/* 搜索樣式 */.title{ text-align: center; font-size: 20px; font-weight: bold;}.search_con{ width: 80%; margin:20px auto;}.search_con .search_input{ border: 1px solid rgb(214, 211, 211); height: 45px; border-radius: 100px; font-size: 17px; padding-left: 15px;/*此處要用padding-left才可以把光標往右移動15像素,不可以用text-indent*/ color: #333;}.search_con .search_btn{ margin-top: 15px; width: 100%; height: 45px; background: #56b273; color: #fff; border-radius: 100px;}.search_result{ width: 80%; margin:10px auto;}.search_result .empty{ text-align: center; color: #f00; font-size: 15px;}.search_result .noresult{ text-align: center; color: #666; font-size: 15px;}.search_result .resname{ text-align: left; color: #333; font-size: 15px;}

服務端

search.php

<?phpheader('Content-Type:application/json');//獲取表單數(shù)據(jù)$keyword1 = $_GET["keyword"];//過濾表單空格$keyword2 = trim($keyword1);//當表單提交空白數(shù)據(jù)時if(empty($keyword2)){    //構(gòu)建數(shù)組  $arr = array(      "empty" => "表單不能為空"    );  //把數(shù)組轉(zhuǎn)換為json  $data = json_encode($arr);  echo "[$data]";}else{//過濾表單特殊字符$replace = array('!','@','#','$','%','^','&','*','(',')','_','-','+','=','{','}','[',']',';',':','"','<','>','?','/','|');$keyword3 = str_replace($replace, '', $keyword2);// 連接數(shù)據(jù)庫$con = mysql_connect("數(shù)據(jù)庫地址","數(shù)據(jù)庫賬號","數(shù)據(jù)庫密碼");if (!$con){die('Could not connect: ' . mysql_error());}mysql_select_db("數(shù)據(jù)庫名", $con);mysql_query("SET NAMES UTF8");//查詢數(shù)據(jù)庫$result = mysql_query("SELECT * FROM 表名 WHERE 需要查詢的字段 like '%$keyword3%' ORDER BY ID DESC");$results = array();//查詢數(shù)據(jù)庫是否存在這條記錄$exist = mysql_num_rows($result);if ($exist) {  //遍歷輸出  while ($row = mysql_fetch_assoc($result)){    $results[] = $row;    }  //輸出JSON  echo json_encode($results);  //當查詢無結(jié)果的時候  }else{    //構(gòu)建數(shù)組    $arr = array(      "noresult" => "暫無結(jié)果"    );    //把數(shù)組轉(zhuǎn)換為json    $data = json_encode($arr);    echo "[$data]";}//斷開數(shù)據(jù)庫連接mysql_close($con);}?>

服務端也是非常簡單的,大家自己把服務端寫好一點,畢竟安全和效率是很重要的。

演示

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 镇巴县| 金溪县| 台湾省| 哈尔滨市| 沙田区| 安义县| 邯郸市| 迭部县| 苏尼特右旗| 永嘉县| 广州市| 工布江达县| 锦州市| 巴东县| 怀宁县| 抚远县| 迭部县| 防城港市| 都江堰市| 布拖县| 云和县| 辽源市| 黑河市| 柘城县| 平舆县| 睢宁县| 城口县| 汝州市| 石阡县| 囊谦县| 濉溪县| 洛宁县| 平泉县| 牙克石市| 万载县| 苏尼特左旗| 璧山县| 莎车县| 乡宁县| 宝应县| 涟源市|