我主要是寫PHP的..........不過這種方法基本上適用各種server端script
ASP.NET, ROR等等
一般我們在做後台管理程式一定會有很多輸入欄位或是一堆543要設定
所以就會很多欄位 下拉選單 balblablalal等等等
於是就會有編輯項目的功能
想當年我看PHP的書是這樣寫
<input value="<php print $value; >" />
這種寫法有可能出問題
假如你的$value是"asdsad"Asdsad"asdsad" 標籤就會出問題
後來我就想出一種方法
自己想出來的XD
我覺得不但加快超多速度而且也比較不會有問題
就是在網頁的開始端
輸出一段json
PHP寫法
$x = dbGetRow('index_group', get('id'));
$jsonData['groupID'] = $x['groupID'];
$jsonData['dateFrom'] = $x['dateFrom'];
$jsonData['dateTo'] = $x['dateTo'];
$jsonData = json_encode($jsonData);
抓好值之後 再給他印成json
print '<script type="text/javascript" >var data = ' . $jsonData . '; </script>';
然後再用這個data變數塞值
我是在document ready的時候呼叫一個function
$(document).ready(function() {
assignFormValue();
});
assignFormValue這個function裡面做的就是把key對應到的id塞進他的value
function assignFormValue() {
for (var key in data) {
$('#' + key).val(data[key]);
}
}
這種做法在網頁讀取過程他的欄位都是空的
但讀取完畢就會自動塞進這些值
一樣達成編輯功能的訴求
重點是這種寫法要顧慮的地方極少
頂多要處理的是你的input欄位, select 的id要對應到罷了
個人強力推薦這種做法XD
不過這寫法對於radio則是要個別處理
這是我的個別處理function
function setRadioValue(name, value) {
$('input[name=' + name + ']').each(function() {
if ($(this).val() == value) {
$(this).attr('checked', true);
}
});
}
沒有留言:
發佈留言