У меня есть массив Javascript 2-D, определенный следующим образом:
proData[prov_999998] = new Array();
proData[prov_999998]["address"] = "29 South St. South #202 Uxbridge ON L9P 1V9";
proData[prov_999998]["phone"] = "555-555-5555";
proData[prov_999998]["fax"] = "444-444-4444";
Я пытаюсь получить доступ к этим элементам массива в этой функции:
function switchPro(value) {
document.getElementById("letterheadName").value = value;
document.getElementById("letterheadAddress").value = providerData[prov_999998]["address"];
document.getElementById("letterheadAddressSpan").innerHTML = providerData[prov_999998]["address"] ;
document.getElementById("letterheadPhone").value = providerData[prov_999998]["phone"];
document.getElementById("letterheadPhoneSpan").innerHTML = providerData[prov_999998]["phone"];
document.getElementById("letterheadFax").value = providerData[prov_999998]["fax"];
document.getElementById("letterheadFaxSpan").innerHTML = providerData[prov_999998]["fax"];
}
Но я получаю сообщение об ошибке: "prov_999998 не определено в" providerData [prov_999998] ["address"]; ".
Может кто-нибудь, пожалуйста, помогите мне с этим? Я не могу иметь числа в качестве индексов массива, потому что javascript не принимает индекс массива, начинающийся с '0', например [0999]. Эти индексы массива являются идентификаторами, введенными пользователем, и я не могу наложить ограничение на формат идентификатора. Я новичок в javascript, поэтому я буду признателен за любую помощь.
На самом деле, я хочу, чтобы первый индекс был переменной. Вот что я делал:
function switchProvider(value) {
var val = "prov_"+value;
document.getElementById("letterheadName").value = value;
document.getElementById("letterheadAddress").value = providerData[val]["address"];
document.getElementById("letterheadAddressSpan").innerHTML = providerData[val]["address"] ;
document.getElementById("letterheadPhone").value = providerData[val]["phone"];
document.getElementById("letterheadPhoneSpan").innerHTML = providerData[val]["phone"];
document.getElementById("letterheadFax").value = providerData[val]["fax"];
document.getElementById("letterheadFaxSpan").innerHTML = providerData[val]["fax"];
}
Но это не работает, значения на веб-странице отображаются как «неопределенные». Что я делаю не так?
Вот еще код, это JSP и Javascript вместе.
var providerData = new Array();
<%
for (Provider p : prList) {
if (!p.getProviderNo().equalsIgnoreCase("-1")) {
String prov_no = "prov_"+p.getProviderNo();
%>
providerData[<%=prov_no%>]["address"] = "<%=(p.getClinicAddress() + " " + p.getClinicCity() + " " + p.getClinicProvince() + " " + p.getClinicPostal()).trim() %>";
providerData[<%=prov_no%>]["phone"] = "<%=p.getClinicPhone().trim() %>";
providerData[<%=prov_no%>]["fax"] = "<%=p.getClinicFax().trim() %>";
<% }
} %>