| Autor | Zpráva | ||
|---|---|---|---|
| Cup Profil |
#1 · Zasláno: 15. 11. 2009, 17:59:59 · Upravil/a: Cup
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 |
#2 · Zasláno: 15. 11. 2009, 18:13:57
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 |
#3 · Zasláno: 15. 11. 2009, 18:29:39
|
||
| Cup Profil |
#4 · Zasláno: 15. 11. 2009, 18:33:49
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
|
||
|
Časová prodleva: 17 let
|
|||
0