請問各位大大,如何改良附圖的程式,讓它可以再讀入另一個xml,並放在select中,
格式如下:
<?xml version="1.0" encoding="utf-8"?>
<item>
<address>100 台北市重慶南路二段7號1樓</address>
<tele>23888888</tele>
<fax>23888899</fax>
</item>
<item>
<address>100 台北市重慶南路一段4號</address>
<tele>23121212</tele>
<fax>23323232</fax>
</item>
麻煩大家解惑了
其實你的需求還是沒有說很清楚。不過簡單的說,你可以把option存入陣列,而不是字串。這樣透過陣列就可以調整選單(找一下push/splice/concat/pop/shift/unshift等等操作陣列的方法怎麼用,不過你應該不會用到pop/shift),最後再把陣列用join()方法組合成字串str丟給$(elem).html(str)。
簡單來說,我有10個html表單,表單中的select很常更換,目前我的程式可以做到只有一個select,若有第二個select加入,則會報錯.
所以想請教各位大大,若是xml為如下:
<?xml version="1.0" encoding="utf-8"?>
<item>
<address>100 台北市重慶南路二段7號1樓</address>
<tele>23888888</tele>
<fax>23888899</fax>
</item>
<item>
<address>100 台北市重慶南路一段4號</address>
<tele>23121212</tele>
<fax>23323232</fax>
</item>
程式讀取xml的寫法是要改變那裡呢?
請您把需求再描述更精確一點。
1.以目前的程式來說,select只有一個(selectbox).但另外有一張表單,有三個select分別為address,tele,fax.若選address則會自動帶入相對應的tele及fax
2.select會隔一段時間要加入新的一項.ex:部門,加入會計部.
而這個部門select,幾乎10張表單都會用到,所以當然設成xml我比較好維護.
3.我舉例的xml如下,是我預計要做的.但以範例程式,會跑不出來,都是空白.
<item>
<address>100 台北市重慶南路一段4號</address>
<tele>23121212</tele>
<fax>23323232</fax>
</item>
4.sorry,應該不是報錯.是完全沒有資料.
資料:
<pre class="c" name="code"><?xml version="1.0" encoding="utf-8"?>
<items>
<item>
<address>100 台北市重慶南路二段7號1樓</address>
<tele>23888888</tele>
<fax>23888899</fax>
</item>
<item>
<address>100 台北市重慶南路一段4號</address>
<tele>23121212</tele>
<fax>23323232</fax>
</item>
</items>
程式(我稍微簡化了):
<pre class="c" name="code">
<script src="js/jquery-1.9.1.js"></script>
<select id="main"></select>
<script>
$.ajax({
url: 'test928.xml',
type: 'get',
dataType: 'xml',
success: function(xml) {
var menuitem = ['<option>請選擇</option>'];
$(xml).find('items').find('item').each(function(index, node) {
menuitem.push('<option value="'+$(this).text()+'">'+$(this).text()+'</option>')
});
$('#main').html(menuitem.join(''));
}
});
</script>
這樣是沒問題的啊,還是說你在做address, tele, fax的部份有問題?
是呀,這樣是沒問題的.謝謝大大幫我簡化程式.
但我現在的需求是address選進來後,tele及fax如何連動帶入select呢?
這樣喔...終於知道你的問題點
如過有這樣的需求,你在剖析xml時,不要只是讓他轉成字串。你可以考慮一下需要怎樣的互動,然後需要把這些資料存到怎樣的資料結構中,來跟你需要的互動做對應。
例如你可以把資料存成陣列,然後用陣列索引當作地址選單的value,這樣在onchange事件中,讀取選單目前的value,就可以利用索引從陣列中取出tele跟fax。
1.你根本沒貼任何的程式, 如果要猜出你的程式是怎麼寫的? 難度也太高了
2.在JavaScript去處理XML通常是瀏覽器內建的 XMLHttpRequest
或是MS的Microsoft.XMLDOM的ActiveX來處理
用法請自行用Google找