微信小程序开发搜索功能实现(前端+后端+数据库)


Posted in Javascript onMarch 04, 2020

2019年5月7日更新这是写的最新的一篇文章大家看这篇:https://3water.com/article/157081.htm

 界面比较丑,主要实现逻辑...

微信小程序开发搜索功能实现(前端+后端+数据库)

 超级简单的界面,表单,提交按钮,搜索结果展示区域...

下面是index.wxml

<!--index.wxml-->
<form bindsubmit="formSubmit">
<!--提交按钮 -->
<input type="text" name="id" placeholder='输入关键词' style='border:1px solid #ccc;height:30px;'/>
<button formType="submit" class="btn">搜索</button>  
</form>
<view>搜索结果</view>
<view wx:for="{{re}}" wx:key="re">
 <view style='color:#f00;'>{{item.result}}</view>
 <view style='color:green;'>{{item.title}}</view>
</view>

*跟前端差不多,form表单要加一个bindsubmit="formSubmit"

接着就是index.js

//index.js
//获取应用实例
const app = getApp()
Page({
 /**
  * 页面的初始数据
  */
 data: {
  result:'',
  state:''
 },
 formSubmit: function (e) {
  var that = this;
  var formData = e.detail.value.id; //获取表单所有name=id的值 
  wx.request({
   url: 'http://localhost/2018-5-24/search.php?id=' + formData,
   data: formData,
   header: { 'Content-Type': 'application/json' },
   success: function (res) {
    console.log(res.data)
    that.setData({
     re: res.data,
    })
    wx.showToast({
     title: '已提交',
     icon: 'success',
     duration: 2000
    })
   }
  })
 },
})
url: 'http://localhost/2018-5-24/search.php?id=' + formData,

这个很容易理解

var that = this;
var formData = e.detail.value.id;

先把表单name=id的值获得,然后赋给formData这个变量
然后,在url进行拼接,用+号拼接这个变量即可...

然后,提交到接口,后端进行处理即可,后端处理后返回json格式的数据,然后通过

that.setData({
  re: res.data,
 })

进行打印在控制台,你也可以渲染在index.wxml

为了方便大家研究,我把后端的php源码也贴出来。

search.php

<?php
header("Content-type:text/json;charset=utf8");
//定义参数
$id = $_GET["id"];
//表单验证
if(empty($id)){
  echo "[{\"result\":\"表单为空...\"}]";
}else{
  //连接数据库
  $con = mysql_connect("数据库链接","账号","密码");
  //设置数据库字符集 
  mysql_query("SET NAMES UTF8");
  //查询数据库
  mysql_select_db("数据库名", $con);
  $result = mysql_query("SELECT * FROM test WHERE id like '%$id%'");
  $results = array();
  while($row = mysql_fetch_assoc($result))
  {
    $results[] = $row;
    // 将数组转成json格式
    echo json_encode($results);
  }
  //关闭数据库连接
  mysql_close($con);
}
?>

*数据库表名为test,里面一共有两个字段,一个是id,一个是title

所以index.wxml里面有两个值

<view wx:for="{{re}}" wx:key="re">
 <view style='color:#f00;'>{{item.result}}</view>
 <view style='color:green;'>{{item.title}}</view>
</view>

wx:for="{{re}}"指的是循环数组,在js代码中,我们把所有服务端取得的数据,存进了re的数组

然后,{{item.result}}指的是服务端返回表单为空的结果。{{item.title}}返回的是搜索结果,这个结合你的数据库吧,你想展示什么结果,你就把title改成你数据库的相关字段。

微信小程序开发搜索功能实现(前端+后端+数据库)

到此这篇关于微信小程序开发搜索功能实现的文章就介绍到这了,更多相关小程序搜索功能内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript中的=等号个数问题两个跟三个有什么区别
Oct 23 Javascript
js获取判断上传文件后缀名的示例代码
Feb 19 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
Jun 16 Javascript
JSON格式的键盘编码对照表
Jan 29 Javascript
JavaScript模板引擎Template.js使用详解
Dec 15 Javascript
Javascript中的prototype与继承
Feb 06 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
在vue中使用Autoprefixed的方法
Jul 27 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
Oct 02 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
Sep 11 Javascript
详解Vue slot插槽
Nov 20 Vue.js
vue中使用mockjs配置和使用方式
Apr 06 Vue.js
微信小程序云函数添加数据到数据库的方法
Mar 04 #Javascript
jquery实现垂直手风琴菜单
Mar 04 #jQuery
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
Mar 04 #Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 #Javascript
js回调函数原理与用法案例分析
Mar 04 #Javascript
在pycharm中开发vue的方法步骤
Mar 04 #Javascript
Vue+Vuex实现自动登录的知识点详解
Mar 04 #Javascript
You might like
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
第十二节--类的自动加载
2006/11/16 PHP
详解PHP显示MySQL数据的三种方法
2008/06/05 PHP
PHP 页面编码声明方法详解(header或meta)
2010/03/12 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
jQuery实现下拉框功能实例代码
2016/05/06 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
详解Python命令行解析工具Argparse
2016/04/20 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
修理厂厂长岗位职责
2014/01/30 职场文书
入党自荐书范文
2014/03/09 职场文书
投标承诺书怎么写
2014/05/24 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
2015年考研复习计划
2015/01/19 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
尼克胡哲观后感
2015/06/08 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
解析目标检测之IoU
2021/06/26 Python
Python进行区间取值案例讲解
2021/08/02 Python
《废话连篇——致新手》——chinapizza
2022/04/05 无线电
服务器nginx权限被拒绝解决案例
2022/09/23 Servers