2010年3月22日 星期一

在javascript中抓取陣列資料

記錄在javascript中如何取得在HTML中的陣列資料
以及如何將之讀取出來


一般來說,我們在javascript裡使用的陣列型態的方法如下
例:

//宣告
var url_arr=new Array('software.sopili.net','dev.sopili.net');
//讀取
for(var i in url_arr){document.write(url_arr[i]+'
');}

那,如果想要像php一樣,array的key值是用字串
例:

$url_arr=Array('software'=>'software.sopili.net','dev'=>'dev.sopili.net');
foreach($url_arr as $key=>$value){
echo $key."
";
//重點是 key,有時候非常的需要key這個值,然後是字串型態
}


這時候要用JSON的格式
例:

//宣告
var url_arr={'software':'software.sopili.net','dev':'dev.sopili.net'};
//讀取
for(var key in url_arr){
//這裡面的key值,就真的是字串了!
document.write(url_arr[key]+'
');
}

接下來,要如何從html裡面讀取陣列的值呢?
假使資料來源如下:

<input name="education[]" type="text" size="20" maxlength="40" />
<input name="education[]" type="text" size="20" maxlength="40" />
<input name="education[]" type="text" size="20" maxlength="40" />

PHP的用法很簡單,直接使用"education"這個名稱就好
例:

foreach($_POST['education'] as $key=>$value) echo $key.' '.$value;

javascript的麻煩一點,但差不多的用法
例:

var mutli_education = document.form_name.elements["education[]"];
for(i=0;i < mutli_education.length;i++){ alert(mutli_education[i].value);}


參考資料:
1.http://dev.sopili.net/2008/11/javascriptarraykey_6376.html
2.http://roshanbh.com.np/2008/08/handling-array-html-form-elements-javascript-php.html

沒有留言: