微信小程序 數據請求 表單的創建 提交 與接收

view plain copy

  1. var app = getApp();

  2. Page({

  3. data:{

  4. // text:"這是一個頁面"

  5. array:["中國","美國","巴西","日本"],

  6. toast1Hidden:true,

  7. modalHidden: true,

  8. modalHidden2: true,

  9. notice_str: '',

  10. index:0

  11. },

  12. toast1Change:function(e){

  13. this.setData({toast1Hidden:true});

  14. },

  15. //彈出確認框

  16. modalTap: function(e) {

  17. this.setData({

  18. modalHidden: false

  19. })

  20. },

  21. confirm_one: function(e) {

  22. console.log(e);

  23. this.setData({

  24. modalHidden: true,

  25. toast1Hidden:false,

  26. notice_str: '提交成功'

  27. });

  28. },

  29. cancel_one: function(e) {

  30. console.log(e);

  31. this.setData({

  32. modalHidden: true,

  33. toast1Hidden:false,

  34. notice_str: '取消成功'

  35. });

  36. },

  37. //彈出提示框

  38. modalTap2: function(e) {

  39. this.setData({

  40. modalHidden2: false

  41. })

  42. },

  43. modalChange2: function(e) {

  44. this.setData({

  45. modalHidden2: true

  46. })

  47. },

  48. bindPickerChange: function(e) {

  49. console.log('picker發送選擇改變,攜帶值為', e.detail.value)

  50. this.setData({

  51. index: e.detail.value

  52. })

  53. },

  54. onLoad:function(options){

  55. // 頁面初始化 options為頁面跳轉所帶來的參數

  56. },

  57. onReady:function(){

  58. // 頁面渲染完成

  59. },

  60. onShow:function(){

  61. // 頁面顯示

  62. },

  63. onHide:function(){

  64. // 頁面隱藏

  65. },

  66. onUnload:function(){

  67. // 頁面關閉

  68. },

  69. formSubmit: function(e) {

  70. var that = this;

  71. var formData = e.detail.value;

  72. wx.request({

  73. url: 'http://test.com:8080/test/socket.php?msg=2',

  74. data: formData,

  75. header: {

  76. 'Content-Type': 'application/json'

  77. },

  78. success: function(res) {

  79. console.log(res.data)

  80. that.modalTap();

  81. }

  82. })

  83. },

  84. formReset: function() {

  85. console.log('form發生了reset事件');

  86. this.modalTap2();

  87. }

  88. })

3. 部分樣式

[css] view plain copy

  1. #adduser{

  2. background: #f5f5f5;

  3. }

  4. .section__title{

  5. float: left;

  6. width:30%;

  7. }

  8. .form-group{

  9. float: right;

  10. width: 70%;

  11. }

  12. .section{

  13. clear: both;

  14. width:90%;

  15. margin: 2rem auto;

  16. }

  17. .input-text{

  18. border: 1pxsolid#ddd;

  19. }

  20. .button{

  21. border: 1pxsolid#1aad19;

  22. border-radius: 2px;

  23. }

  24. .picker{

  25. padding: 13px;

  26. background-color: #FFFFFF;

  27. }

4. 服務器端

[php] view plain copy

  1. var_dump($_REQUEST);

一個帶form表單的頁面

微信小程序 數據請求 表單的創建 提交 與接收

在這裡定義好自己form表單的元素名稱

  表單提交 
性別 {{error}}
1234567891011121314151617181920212223242526

然後調用wx.request的API方法將表單提交到後臺

Page({ data: { pickerHidden: true, chosen: '' }, pickerConfirm: function(e) { this.setData({ pickerHidden: true }) this.setData({ chosen: e.detail.value }) }, pickerCancel: function(e) { this.setData({ pickerHidden: true }) }, pickerShow: function(e) { this.setData({ pickerHidden: false }) }, formSubmit: function(e) { var _this = this /*********************  wx.redirectTo({ url:'create_photo' }) **********************/ wx.request({ url: 'http://dev.wxapp-union.com/setForm', data: { name: e.detail.value.name, age: e.detail.value.age, gender: e.detail.value.gender } , method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT header: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8' }, success: function(res){ var err = res.data.error if(err) { _this.setData({ error:err }) } else { wx.redirectTo({ url:'create_photo' }) } }, fail: function() { // fail }, complete: function() { // complete } }) }, formReset: function(e) { console.log('form發生了reset事件,攜帶數據為:', e.detail.value) this.setData({ chosen: '' }) }})這裡需要提到幾個坑,首先是你所有的js和json文件,如果創建了,裡面一定要有內容,哪怕json文件就是一對花括號 

{}

哪怕js文件就只有一個Page

Page({})

ok我們來看看效果:

微信小程序 數據請求 表單的創建 提交 與接收

微信小程序 數據請求 表單的創建 提交 與接收

我們可以看到提交的內容是

name:微信小程序聯盟age:18gender:MAN123456

提交的hecontent-type:

application/x-www-form-urlencoded; charset=UTF-8兩個值都是我們在代碼中寫的。

閒話少說,我們看看後臺的斷點

微信小程序 數據請求 表單的創建 提交 與接收

看來我們的req已經成功的接收到了前臺傳過來的表單,然後我一個個的放入我的對象中。最後調用mybatis存入數據庫

微信小程序 數據請求 表單的創建 提交 與接收

這就是我存入數據庫的數據。這樣一個完整的表單提交錄入就完成了。

完整的demo我這裡就不上傳了,因為沒有後臺的服務和數據庫,下了也用不了。我考慮後面是不是可以做成一個簡單的api,然後再把查詢也做了,這樣大家就可以提交之後看到效果了,那個時候再把完整的demo分享出來供大家參考。

以下是建庫腳本,如果有能力的後端猿們也可以幫我把這件事情做了,分享給大家,畢竟眾人拾柴火焰高嘛!

-- ==================================================-- formDemo信息表-- ==================================================DROP TABLE IF EXISTS d_form;CREATE TABLE d_form ( id CHAR(32) NOT NULL COMMENT 'ID序列號', name VARCHAR(32) NOT NULL COMMENT '用戶名', age INT NOT NULL DEFAULT 0 COMMENT '年齡', gender CHAR(32) NOT NULL DEFAULT 'DEFAULT' COMMENT '性別', cre_tim TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '註冊時間', upd_tim DATETIME COMMENT '更新時間', remark VARCHAR(128) COMMENT '備註', PRIMARY KEY (id)) COMMENT='formDemo信息表' ENGINE=InnoDB;CREATE UNIQUE INDEX uniq_idx_form_name ON d_form (name);


分享到:


相關文章: