Problem mit array und formular
David Schäfer
- javascript
Guten Tag,
folgendes script lass ich mir durch php ausgeben und dort wird der array "man" gesetzt. Doch leider gibt das script fehler zurück.
Ich bin nicht so geprobt mit javascript-arrays. Der IE gibt zurück das an der Stelle *!* 0 null oder kein objekt ist. sieht jemand meinen fehler?
////////////////////////////////////////////////////
<form name="new_product" action="http://test.elektroshopwagner.de/admin/categories.php?cPath=&pID=&action=new_product_preview" method="post" enctype="multipart/form-data"> <td><table border="0" cellspacing="0" cellpadding="2">
<table>
<tr>
<td class="main">Artikel-Hersteller:</td>
<td class="main">
<script language="Javascript">
<!--
function manufacturers_linker(id){
var limit = 10;
var man = new Array();
man[0]['id'] = '11';
man[0]['url'] = 'www.aeg-hausgeraete.de';
man[1]['id'] = '12';
man[1]['url'] = 'www.bosch-hausgeraete.de';
man[2]['id'] = '18';
man[2]['url'] = 'www.ebd.de/';
man[3]['id'] = '10';
man[3]['url'] = 'www.gorenje.de/';
man[4]['id'] = '15';
man[4]['url'] = 'www.juno.de';
man[5]['id'] = '17';
man[5]['url'] = 'www.lhg.liebherr.com/de/';
man[6]['id'] = '14';
man[6]['url'] = 'www.miele.de';
man[7]['id'] = '16';
man[7]['url'] = 'www.neff.de';
man[8]['id'] = '19';
man[8]['url'] = 'www.ebd.de/';
man[9]['id'] = '13';
man[9]['url'] = 'www.siemens-hausgeraete.de/';
for(var i = 0; i < limit; i++){
if(man[i]['id'] == id){
document.new_product.manufacturers_link.value = man[i]['url'];
}
}
}
-->
</script>
<select name="manufacturers_id" onChange="manufacturers_linker(document.new_product.manufacturers_id.selectedIndex)">
<option value="" selected="selected">--keine--</option>
<option value="11">AEG</option>
<option value="12">Bosch</option>
<option value="18">EBD</option>
<option value="10">Gorenje</option>
<option value="15">Juno</option>
<option value="17">Liebherr</option>
<option value="14">Miele</option>
<option value="16">Neff</option>
<option value="19">Seppelfricke</option>
<option value="13">Siemens</option>
</select>
</td>
</tr>
<tr>
<td class="main">Herstellerlink:<br><small><small>(ohne führendes http://)</small></small></td>
<td class="main"><img src="/includes/languages/german/images/icon.gif" border="0" alt="Deutsch" title=" Deutsch "> <input type="text" name="products_url[2]"></td>
</tr>
</table>
</form>
////////////////////////////////////////////////////
Vielen Dank für jede Hilfe
Geht das überhaupt mit Javascript, dass man Array['...'] macht? Ich glaube nicht, ich glaub, man kann in JavaScript nur Nummern verwenden. Und dann benutzt du ein zweidimensionales Array, also jedes Element des Arrays ist selbst wieder ein Array. So einfach wie in PHP ist das nicht ;)
Ich würde es so machen, dass du statt
man[1]['id'] = '12';
man[1]['url'] = 'www.bosch-hausgeraete.de';
man[1]="12,www.bosch-hausgeraete.de';
machst, und später man[1] dann wieder aufsplittest:
var Aid=0;
var Aurl="";
for(var i = 0; i < limit; i++)
{
temp=man[i].split(",");
Aid=temp[0];
Aurl=temp[1];
if(Aid == id){
document.new_product.manufacturers_link.value = Aurl;
}
}
hi,
Der IE gibt zurück das an der Stelle *!* 0 null oder kein objekt ist. sieht jemand meinen fehler?
bitte schau dir auf http://glasgoogle.de/ an, wie du "bessere" fehlermeldungen erhältst.
gruß,
wahsaga
Hi,
Du hast eine Kleinigkeit vergessen.
Du legst ein eindimensionales Array an, nutzt aber ein zweidimensionales.
var man = new Array();
man[0] = new Array(); // das muss noch rein, und zwar fuer jedes Element
man[0]['id'] = '11';
man[0]['url'] = 'www.aeg-hausgeraete.de';
gruss,
mobo