小程式 單列和多列picker選擇器(二)

2021-09-26 18:13:27 字數 2374 閱讀 5468

在我的另一篇博文中已經提到了要解決的第乙個問題:在未選擇時展示引導內容,在下拉欄選擇後顯示選擇內容

現在來解決第二個問題:存入值為文字值而不是角標

當前選擇:}

可以看出index是下角標,顯示文字時是以陣列的形式,array[0],array[1]等,所以為了讓資料庫中存入的是文字形式我們可以把這部分內容在js中進行處理

附上xml和js**:

可以在控制台中看到輸出的直接為值的形式,注意觸發了繫結事件bindpickerchangetime以後對indextime的值進行了改變,注意此時改變的是value="}"中的值(也就是要做到和value對應,否則會出現儲存錯誤e.detail.value是陣列下標,在js函式中已通過類似陣列的形式進行了文字的轉換

(以兩列選擇器為例)

當前選擇:},},}

通過開放文件中的示例我們可以看出多列選擇器無法直接使用在js中直接處理的方式,以multiarray[0][multiindex[0]]為例,multiarray[0]代表的是第一列,multiindex[0]是判斷選擇選擇了什麼,也就是只知道陣列下標。multiarray[0]相當於array[index]中的arraymultiindex[0]相當於index,因為多列選擇器繫結的是兩個函式,乙個作為最終的結果處理,乙個具體分析選擇的是哪一列以及選中列對應的內容,再加上value=",所以只能返回陣列的形式,然後在後端進行處理,附**

xml:(注 三目運算子的書寫方式見我另一篇博文 在未選擇時展示引導內容,在下拉欄選擇後顯示選擇內容)

=0?'on':''}}" style="}">

}

js:

bindmultipickerchangeaddr: function (e) )

},bindmultipickercolumnchangeaddr: function (e) ;

data.multiindexaddr[e.detail.column] = e.detail.value;

switch (e.detail.column)

data.multiindexaddr[1] = 0;

break;

}console.log(data.multiindexaddr);

this.setdata(data);

},

看下控制台資訊輸出:

控制台雖然寫的是[0,0]這樣的形式,但是後台輸入儲存時為0,0(可以在php中進行echo)也就是字串的形式,在php中進行值的轉化

php:

$aarea=$_post['aarea'];			//這句是前端中$area = substr($aarea,0,strrpos($aarea,","));		

$dormitory = substr($aarea,strripos($aarea,",")+1);

if ($area==0)

if ($area==1)

$aarea=$area.'-'.$dormitory;

mysqli_query($con,"set names utf8");

關鍵**:

$area = substr($aarea,0,strrpos($aarea,","));		

$dormitory = substr($aarea,strripos($aarea,",")+1);

小程式 單列和多列picker選擇器(一)

未選擇時 選擇後 會顯示選擇的內容 附xml和js xml js data bindpickerchangetype function e 先看下這個選擇器的原理,再觸發了繫結事件bindpickerchangetype以後對indextype的值進行了改變,注意此時改變的是value 中的值 也就...

小程式 picker 多列選擇器 資料動態獲取

需求是將各校區對應各班級的資料 以兩列選擇器的方式展示出來,並且可以在選擇完成之後記錄選結果引數。校區資料 和 班級資料 分別是兩個介面,以 校區 teach area id 字段關聯 其各班級資料 當前選擇 view picker 校區api資料格式 result 1.首先在onload 中請求校...

微信小程式 picker 單項單列選擇的實現

data 核心 點 選擇pickindexarr作為picker的運算元組源的原因就是,避免family陣列的每次重新賦值。如若我們直接使用family作為picker陣列源,由於picker的值必須是選擇一次,都要重新賦值,那麼family也就需要重新賦值,我必須保證family的所有欄位的輸入變...