Autor Zpráva
JerryCB
Profil *
Zdravím,

mám problém s odesíláním výsledku formuláře do vnořeného rámu <iframe>.

Vím, že pokud chci nějaký odkaz z nadřazené stránky odeslat do iframu, tak musím použít atributu target="jmeno.iframu", ale už nechápu jak nebo kde tohoto atributu použít, když potřebuji do iframu odeslat výsledek formuláře.

Udám příklad:

<form name="x1" target="jmeno.iframu">
<select name="x2">
<option value="x3">xy</option>
</select>
<input type="submit" onclick="window.location.href='.//' + document.x1.x2.value + '.htm' ">
</form>

V tomto případě sice formulář funguje, ale jeho výsledek se nepošle do rámu, ale zůstane ve stejném okně.

Předem díky za pomoc. Jerry
peta
Profil
JerryCB
Priklad ma smysl, pokud je konkretni. Dej odkaz na stranku, o kter tvrdis, ze nefunguje. Klidne i tento priklad prepracovany do spesl stranky.

V tomto prikladu jsou totiz nasledujici chyby:
- neni tam html, body
- neni tam action formulare
- neni tam zadny iframe a neni tam zadny prvek, tery by mel name="jmeno.iframu" na ktery by se formular odesilal
- window.location.href='.//' - proc 2 lomitka?
- document.x1.x2.value , value funguje v novych prohlizecich ; jakpsatweb - javascript - priklady - formulare
- window.location.href je presmerovani na stranku, k odeslani formulare muze a nemusi dojit, zaleni na prohlizeci. Pokud chces sklatat adresu, pak tlacitko musi byt typu button a na onsubmit musis menit this.form.action = ... ; a pak provest this.form.submit() pro odeslani formulare
Myslim, ze je na to priklad mezi priklady na javascript.
JerryCB
Profil *
Pravdou je že stránku na web vložit nemohu, protože tam umístěna nebude. Tvořím si takovou fotogalerii, kterou si vypálím na cd.

V nadřazeném okně budou různé kategorie a sežazení, a v iframu se budou ukazovat už jen fotografie. iframe jsem tam vložil proto, aby se mi stránka nenačítala stále dokola, a hlavně bych to později nemohl editovat, a přidávat další fotografie do seunamu.

".//" je tam z důvodu toho, že nevím jakým způsobem budou označeny jednotky CDROM (D:, E:) na jiných počítačích.

iframe mám v celkovém zdrojáku samozřejmě označen name="jmeno.iframu"

používám prohlížeč IE 6.

Pokud by to mělo smysl, mohu zaslat celý zdroják... Mučím se s tím už od včerejška bez přestávky, a nedostal jsem se dálů než k tomu že se mi formulář vůbec neodešle, nebo že se odešle do stejného okna, a nebo že se do rámu odešle nadřazená stránka... Jerry
JerryCB
Profil *
Tak už jsem zjistil že ".//" je špatně, ale prohlížeči to nevadilo. má být "./"

Ve formuláři nemám action, protože jsem se dočetl že v tomto atributu musí být absolutní adresa, a já mám adresu proměnnou.

Zkouším co jsi napsal, ale nějak se mi stále nevede.
peta
Profil
JerryCB
'Pravdou je že stránku na web vložit nemohu'
web je mozne vlozit vzdy na stranky. Muzes si tam udelat treba adresar X, muj oblibeny pro smazani. Tez je mozne stranky presunout na freehosting, treba wz.cz a 1000 dalsich.
Takze das nebo nedas neco funkcniho, uplneho s tou chybou? Muzu jen par tipu...

>> ".//" je špatně, ale prohlížeči to nevadilo
jasne, prohlizec je inteligentni :)

>> nevím jakým způsobem budou označeny jednotky CDROM (D:, E:)
>> na jiných počítačích
To v celku neni podstatne, protoze mame zapis relativni, absolutni na windows-dos nebo linux . Nejsem si jisty, jak by ti zobrazil:
E:/neco/neco linux a jinak mozna win, takze by to nebylo pouzitelne.
dalsi takovy zapis je z file://
relativni pak mas:
./neco/
neco/

jmeno.iframu - mno, povolene znaky jsou azAZ_ a prvni musi byt pismeno. Ja vim, zas se ozve Chamurapi, ale s timto mam proste jistotu, ze to funguje vzdy. Jestli tam mas tecku, tak ji dej pryc.

>>Ve formuláři nemám action, protože jsem se dočetl že v tomto
>>atributu musí být absolutní adresa, a já mám adresu proměnnou.
Mne zatim fungovala i relativni adresa.
JerryCB
Profil *
Tak už jsem na to přišel. Na stránkách jaknaweb.cz jsem našel článek který mi pomohl a já jsem tedy použil u buttonu : OnClick="self.open(self.document.forms.x1.x2.value a poté jsem zkusil zadat název rámu, a ono to fungovalo.

Celkově tedy:

<form name="x1">
<select name="x2">
<option value="x3">xy</option>
</select>
<input type="button" OnClick="self.open(self.document.forms.x1.x2.value,'nazev.ramu')">
</form>

Tímto způsobem se mi výsledek formuláře promítl ve vnořeném rámu.


A ještě pár vysvětlení:

Nejsem zase tolik zběhlý v tvorbě webu, takže někdy se možná špatně vyjádřím, ale to že mezi nazev.ramu nemá být tečka vím. všechny popuisované hodnoty (x1. x2, x3, nazev.ramu) byly pouze náhradou za skutečné názvy, protože ty opravdové by bylo mnohem složitější luštit, a to z důvodu, že v jednom formuláři mám 7xselect, v každém cca 20xoption, 5xbutton, a další. Navíc je to složitá tabulková sestava.
Vím že existuje free-webhosting, a sám mám účet u wz několik let. nemohu ho vložit na stránky, protože webzdarma poskytuje pouze 150MB prostoru, a já mám 650MB fotografií.
Zřejmě asi mám opravdu inteligentní prohlížeč :-) Problém s ".//" jsem měl až tehdy, kdy jsem chtěl otvírat obrázek do nového okna, a v adrese se mi objevilo d://galer1////////////////////data/foto.jpg
Do té doby mi prohlížeč opravdu všechny stránky zobrazoval i s ".//"
Dále vím že mi nezobrazí e:/něco/něco2.htm Proto mám vše ještě ve složce a z té se mi teprve načítá soubor index. čily myslím že by v tom neměl být problém. Nyní vytvářím všechny soubory na D: a nedělá to problémy, tak by je neměl dělat ani po vypálení. (snad) :-)


I tak díky za pomoc. ještě se vůbec nevyznám v JavaScriptech a nemám v tom přehled, a hlavně nevím co s čím spojit.

S pozdravem JerryCB
Chamurappi
Profil
Reaguji na peta:
- neni tam html, body
Počáteční i ukončovací značky <html> a <body> jsou nepovinné.

- neni tam action formulare
Není potřeba.

jmeno.iframu - mno, povolene znaky jsou azAZ_ a prvni musi byt pismeno
To jsi zase sebral kde? Uveď zdroj.
Zase zavaluješ tazatele hromadou blbostí, přestože je jasné, co chce. Tohle je to dělání nepořádku na diskusi, které jsi nám přislíbil?


Reaguji na JerryCB:
V tomto případě sice formulář funguje, ale jeho výsledek se nepošle do rámu
Tobě ale nejde o výsledek formuláře, ty ho nepotřebuješ nikam odesílat. Bereš si jen hodnotu ze <select>u. Takže <form> se svým targetem nic nezmůže, šlo by to i bez něj.

to že mezi nazev.ramu nemá být tečka vím
Odkud? Ona tam být může a je neškodná.
Bubák
Profil
jmeno.iframu - mno, povolene znaky jsou azAZ_ a prvni musi byt pismeno.
pete, před pár léty jsi tvrdil něco jiného, ale taky to bylo špatně. Tak se to sakra nauč. Je to jen devět vět v šesti odstavečcích, snad to do vánoc zvládneš ;-)
www.w3.org/TR/WD-html40-970917/present/frames.html#h-17.2.3
www.w3.org/TR/html4/types.html#type-frame-target (totéž, ale opakování není nikdy dost)
kvok
Profil *
webzdarma poskytuje pouze 150MB prostoru
Webzdarma poskytuje až 500MB. To sice také nestačí, ale je to víc.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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