Autor Zpráva
Peter09
Profil *
Ahojte všetci.

Chcem si dať na blog jednoduchý upload a našiel som celkom jednoduchý : www.ajaxf1.com/demo/ajaxupload/

Keď ho ale vnorím na stránku tak keď chcem uploadnúť mi zmrzne a ide len progressbar. Vysledok ani nevypise.

Na stránke sú aj scripty, možete prosim skontrolovať, kde je chyba?

Za ochotu moc ďakujem :)
Natlaid
Profil
Pokud jsem dobře prostudoval JS, tak tam nic neodesílá AJAXový požadavek. Takže se nemůže nic nahrát AJAXově.
Peter09
Profil *
Natlaid, ďakujem za čas a ochotu. Vážim si tvoju snahu helfnúť.

Nevieš teda, akým spôsobom by sa toto dalo vyriešiť, konkretne u tochto uploadu ? Poprípade hodiť nejaké riešenia, ktoré by sa hodili na tento typ uploadu?
Natlaid
Profil
Peter09:
No, já nevím jak to řešit jen pomocí JS. :-)
Já totiž používám jQuery FrameWork, který mě tohoto ušetřuje.
Peter09
Profil *
Mne ide vlastne len o validation. Tam je zrejme problem pri innerHTML, pretoze subor sam o sebe upne.
Natlaid
Profil
Peter09
Tak to tam musíš mít nějakou chybičku, protože jinak by ti to mělo chodit. :-)
awido
Profil *
Zdravím Peter09.

Ten Ajax script je dosť na nič. Ako už Natlaid spomenul, nie je v ňom ajaxové volanie a sám o sebe je mizerný. On síce uploadne, ale samotná štruktúra je dosť zdĺhavá... V hlavičke je script, teda dve funkcie. Po odkliknutí buttonu, sa vyvolá funkcia startupload, pričom sa len skryje form a zobrazí bar. Následne sa údaje odošlú do externého upload.php, kde sa podmienkami nastavia hodnoty, ktoré sa na konci porovnajú s hodnotami v druhej funkcii java scriptu a nastaví sa obsah správy resultu. Teraz sa script returnuje naspäť na externý súbor upload.php, ktorý nastavoval hodnoty a príkazom na konci :
top.window.stopUpload
vyvolá správu , ktorá sa zobrazí na hlavnej stránke....dosť nanič.
Preto sa to v rámoch bije. Ukáže len úvodnú stranu, pričom return a externý súbor zostáva v zabudnutí.
Možnosť ako to vyriešiť by bola asi v tomto prípade na externý súbor hodiť nejaký return na index.php a príkazom if isset zobraziť výsledok- v tom prípade, že by bol nastavený. Avšak, ak by si použíl tento spôsob, tak ak by niekto nevyplnil nejaké okno, tak pri odoslaní by sa vykonal return na hlavnú stránku, správa by vybehla, ale údaje v oknách by sa stratili.

Ako som už spomenul, script a postup v tomto uploade nie je dobrý. Ak píšem niečo, tak si rozmyslím kde chcem vykonať validation. Buť v jave alebo v php. Ten script je tam aj viacmenej zbytočný. Najlepšie urobíš ak dáš jednu funkciu na ktorú odkážeš po odkliknutí buttonu -
onsubmit=" return funkcia ();"
. Do tejto funkcie hodíš validation, poprípade zobrazenie a skrytie formu a baru. Podmienky if v súbore upload.php uplne zmazes - necháš len koncové overenie, poprípade nejaké bezpečnostné scripty a koniec súboru <
script language="javascript" type="text/javascript">
   window.top.window.stopUpload(<?php echo $result; ?>);
</script>
takisto zmažeš.

Skrytý iframe a target= vo <form * nechaj. Všetko by malo fungovať tak ako má.

Tu hodím ešte nejaké ukážky validation v jave, samozrejme, už sám si ich musíš napísať podľa seba: www.w3schools.com/js/js_form_validation.asp

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0