在我的另一篇博文中已經提到了要解決的第乙個問題:在未選擇時展示引導內容,在下拉欄選擇後顯示選擇內容
現在來解決第二個問題:存入值為文字值而不是角標
當前選擇:}
可以看出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]
中的array
,multiindex[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的所有欄位的輸入變...