Autor Zpráva
Cup
Profil
Dobrý den, jsem v javascriptu začátečník proto jsem si vzal již nějaký hotový příklad a snažím se ho pochopit a postupně si jej upravuji, ale teď jsem se zasekl jistě to pro vás bude brnkačka.

Možná to bude vypadat dlouze ale je tam problém pouze v předání XML dokumentu do selectu.


//
//POZOR!!! tato funkce nemůže fungovat při jejím upravování jsem se právě zasekl, samotné vytváření optionu s value = //prefix+hodnota atributu v xmlsouboru u itemu.
//


// funkce dostava idList to je id seznamu do kterého budem přidávat optiony a prefix ... to je písmenko které je potřeba dat do value optionu před id optionu které je v xml dokumentu v atributu idItem 
function go(idList, prefix) {
if (request.readyState == 4 && request.status == 200) {
var documentXML = request.responseXML;

var list=documentXML.getElementByTagName(item); //  do promenne list si nactem pole itemu z xml dokumentu

for (i=1; i<list.length; i++) {

   var x=document.createElement('option');
   var y=document.createTextNode(cities[i]);
   x.appendChild(y);
   list.appendChild(x);
  }
 }
}  


asi budete chtít vidět i pole z kterého to načítám to je zde je to provizorní bude to načítané z databáze
<?php
header("Content-type: text/xml");
function vyberSeznam($item) {
switch ($item) {
case "k0":  //mesta v krajich 
return array( 0 => 'Jihlava', 11=>'Žďár nad Sázavou', 2 =>'Polná', 3 =>'Nové Město na Moravě', 4 =>'Řečice', 5 =>'Třebíč', 6 =>'Hlinné');
break;
case "k1":  //mesta v krajich 
return array(0 =>'WashingtonDC',1 =>'NewYork',2 =>'LosAngeles',3 => 'Chicago');
break;
case "k2":  //mesta v krajich 
return array(0 =>'Canberra' , 1 => 'Melbourne',2 =>'Sydney',3 => 'Brisbane');
break;
case "k3":  //mesta v krajich 
return array(0 =>'Tokyo',1 =>'Osaka',2 =>'Fukuoka',3 =>'Sendai',4 =>'Sapporo');
break;
case "m0":  //skoly ve mestech 
return array(0 =>'SPŠ Jihlava',1 =>'škola 2',2 =>'škola 3');
break;
case "m1":  //skoly ve mestech
return array(0 =>'spszr',1 =>'šecr',2 =>'žďas');
break;
case "s0":  // tridy ve skolach  
return array(0 =>'ps1b',1 =>'ps2b',2 =>'ps3b');
break;

 }
}

$item=@$_GET['item'];
$polozkymenu=vyberSeznam($item);

echo '<?xml version="1.0" ?>';
echo '<list>';
foreach ($polozkymenu as $key => $polozka)
{
echo '<item idItem="'.$key.'">';
echo $polozka;
echo '</item>'; 
}
echo '</list>';
?>



a jeste html
  </head>
  <body>
<form method="post" action="#">
<p><label>country: <select id="country" name="country" onchange="nactiSeznam(country, city, m);">
<option>Vyber kraj</option>
<option value="k1">Vysočina</option>
<option value="k2">Jihomoravský kraj</option>
<option value="k3">Západočeský kraj</option>
<option value="k4">Pardubický kraj</option>
</select></label>
<label>city: <select id="city" name="city" onchange="nactiSeznam(city, school, s)">
<option>Vyber město</option>
</select></label>
<label>school: <select id="school" name="school"  onchange="nactiSeznam(school, class, t)">
<option>Vyber školu</option>
</select>
<label>class: <select id="class" name="class" >
<option>Vyber třídu</option>
</select>
</label>
<input type="submit" value="vyber třídu">
</p>
</form>
  </body>
</html>


předpokládám že mi nidko nepomůže protože je to dlouhý a taky by se mi to nechtělo číst, ale kdyby se našla dobrá duše tak budu rád, kdyby jste chtěli zbytek funkcí v javascriptu tak doložím

díky za pomoc
Chamurappi
Profil
Reaguji na Cupa:
asi budete chtít vidět i pole z kterého to načítám
Budeme chtít samozřejmě vidět to výsledné XML. Proč sem dáváš PHP kód? Pokud to nevíš, tak PHP se vykonává na straně serveru a JavaScript na straně klienta.

předpokládám že mi nidko nepomůže protože je to dlouhý a taky by se mi to nechtělo číst
Ano, nechce se mi to číst. Kdybys dal odkaz na živou ukázku, chybu bych pravděpodobně našel rychle.

kdyby jste chtěli zbytek funkcí v javascriptu tak doložím
Nerozumím, proč se nám nesnažíš rovnou poskytnout úplně všechno. (A správně se píše „kdybyste“.)

Na první pohled bych si tipnul, že je závada v XML, přesněji v jeho kódování. Z výpisu zdrojového kódu pochopitelně nevyčteme, v jakém kódování máš to PHP uložené, ale i tak tam máš zjevně konflikt mezi Unicodem (což je výchozí kódování při neuvedení jiného v XML deklaraci) a us-ascii (což je výchozí kódování MIME typu „text/xml“) — minimálně Exploreru tohle bude vadit. Nikdy nepoužívej „text/xml“, vždy vol „application/xml“.
Cup
Profil
Reaguji na Chamurappiho

tady je živá ukázka, http://www.pivnikomando.ic.cz/zivaUkazka/
Cup
Profil
a chyba bude předpokládám ve funkci go, protože jsem ji nedokázal upravit celou, je tam i jedna proměnná cities která tam nemá co dělat a určitě k optionu není přidána hodnota ... viz první příspěvek

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: