網站後台表單~推薦作法XD

我主要是寫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);
}
});
}

沒有留言: