Autor Zpráva
Monkeys
Profil *
Zdravim

moze mi niekto poradit preco tento moj ajaxovy kod funguje vo vsetkych prehliadacoch okrem Mozzily ?

// load data
var cena     = $("[name=predajnaCena]").val(),
skladovost     = $("[name=skladovost]").val(),
dostupnost     = $("select[name=dostup]").val(),
vaha         = $("[name=vaha]").val(),
min        = $("[name=minMnozstvo]").val(),
max        = $("[name=maxMnozstvo]").val(),
ID        = $("[name=ID]").val();

//ajax processing
$.ajax({
type    : "POST",
url    : "updateData/updateData.php",
cache    : false,
data    : {predajnaCena : cena, skladovost : skladovost, dostup : dostupnost, vaha : vaha, minMnozstvo : min, maxMnozstvo : max, ID : ID}
});

M.
Chamurappi
Profil
Reaguji na Monkeyse:
Na podkladě dodaných informací nemůže, v uvedeném kódu chybu nevidím. Dodej odkaz na živou ukázku.

okrem Mozzily
Jedno Z a dvě L.

okrem Mozziliy
Jedno Y.
Monkeys
Profil *
Chamurappi:
Dakujem za odpoved s zivou ukazkou to je trochu problem pretoze to suvisi s databazou ...
Ale prikaldam cely porstup.

Klikne na ikonu cez ktoru nahram obsah tabulky z DB
$('input[type=image]').click(function(){
var idProduktu = $(this).val();
$.ajax({
type: "GET",
dataType: "html",
cache: false,
url: 'loadData/zoznamProduktovData.php?id_produktu=' + idProduktu,
success: function(data){
$('#produktForm').html($("<div>").append(data));
$.fancybox({
'href' : '#uprav_tovar',
'modal': false,
'onClosed': function() {}
})
}
})
return false;
})

Toto funguje nahraju sa jednotlive policka (inputy) do html fancyboxu
<div>
<form>
.... // HTML formularu
<p>
<input type="submit" id="submit" class="butt" value="Aktualizovať" />
</p>
</form>
</div>

nakoniec ked chcem kliknutim na tlacitko odoslat a aktualizovat databazovu tabulku

$(function(){
$("input[type=submit]").bind("click",function(){
// kod co je v predchadzajucom prispevku
})
});

Pouzivam Fancybox 2
jQuery 1.9.0.min.js
M.
peta
Profil
Monkeys:
"pretoze to suvisi s databazou"
Ajax potrebuje textovy soubor, ktery php vygeneruje. Kdyz chces obejit pro ukazku php/sql, tak proste ulozis do html souboru to, co to php vygeneruje. Da se to pak ulozit na http://jsfiddle.net .

$("<div>") - nepise se to nahodou $("div") ?

url: 'loadData/zoznamProduktovData.php?id_produktu=' + idProduktu,
Je ta adresa spravna? Kdyz ji das zalertovat a pak ji zkopirujes do adresniho radku prohlizece, funguje to? nacte se seznam produktu?
Monkeys
Profil *
peta:
Je ta adresa spravna?
Adresa je spravna cez ten riadok sa nacita obsah do fancyboxu a to funguje vsade
Nefunguje mi to len v Mozille a v Chrome mi to aktualizuje len po jednom policku co je divne

Vyborne to funguje v IE a Opere

M.


Do mozilly som si stiahol firebug ale neviem ako v tom najst chybu

M.
peta
Profil
Mno, dej to na web, aby se to dalo spustit v prohlizeci a pak muzeme hledat chyby. Takhle je to jen fikce. Tip a pak cekat na tvou odpoved, jestli se clovek nahodou trefi. Treba mas u toho ajaxu nekde nastaveny synchronni prenos. Nebo jinou zaludnost.
Stale mluvis o fancy boxu. Je mozne, ze tva cast neselze, ze selze kod fancy boxu nebo se pomlati s ostatnim js. Ale z takovych neuplnych drobku se to fakt neda. Museli bychom to spustit.
Ve FF si vystacim s Nastroje- vyvoj webu - chybova konzola. Smazat ji. F5 stranky. A pak treba klik nebo neco. Jak tam naskacou chyby, tak je tam nejaky problem.
Jeste treba v IE je takova zaludnost, ze nehledi na mala velka pismenka funkci. Treba to ve FF zkape prave na tom.
Chamurappi
Profil
Reaguji na peta:
$("<div>") - nepise se to nahodou $("div") ?
To by dělalo něco jiného.

Jeste treba v IE je takova zaludnost, ze nehledi na mala velka pismenka funkci.
Vážně? Ukaž. Jinak je to jen fikce… mně to přijde jako blábol (zase jsi mě donutil přemýšlet, jestli tě mám smazat).


Reaguji na Monkeyse:
Ale prikaldam cely porstup.
V něm příčinu popisovaných potíží nevidím.
Monkeys
Profil *
Vyriesli som to:

do ajaxu som pridal
success    : function(data){
window.location.reload(true);
}

Input submit som zemnil na a dal mimo <form>
<input type="button" id="submit" onClick="odosliData();" class="butt" value="Aktualizovať" />

cely ajax teraz volam cez funkciu
function odosliData(){
//ajax
}

Aj tak nerozumiem dovodu preco to v niektorych prehliadacoch ide bez problemov a v inach to blbne a musi sa hladat uplne ine riesenie

M.
peta
Profil
Chamurappi:
Najdi si v diskuzi tak 1-3 roky zpet. Nevim, pod jakymi slovy to hledat. Jednalo se o parazitni js kod, ktery pridaval iframe do stranky. V IE se zobrazoval banner, ve FF ne. Bylo to zkusobeno tim, ze nejakou funkci meli napsanou malymi pismenky. Mozna za to mohla doctype.
Zkousel jsem ted takovyto kod, ale bez uspechu. Bud to bylo doctype nebo nektery s updatu IE problem vyresil.
<script>
document.write("Blue Whale".indexOf("", 11));
document.write("Blue Whale".indexof("", 11)); // ani v IE, ani FF
</script>
Chamurappi
Profil
Reaguji na peta:
Najdi si v diskuzi tak 1-3 roky zpet.
Díky, že jsi mi zúžil hledání na rozsah asi třiceti tisíc stránek, ale já bych chtěl vidět jeden konkrétní důkaz. Jinak bych řekl, že zase kecáš.

nebo nektery s updatu IE problem vyresil
Tohle je opět pojistka pro tvoji lež, abys mohl kdykoliv říct, že to platilo jen omezenou dobu, kterou už si nejde ověřit.
Měl jsem tě opravdu raději smazat. Poučení pro příště :-)


Reaguji na Monkeyse:
Proč vlastně posíláš data AJAXem, když vzápětí znovunačteš stránku? (Někdy to uplatnění mít může, ale moc často ne, tak jsem zvědavý…)
_es
Profil
Monkeys:
do ajaxu som pridal
success    : function(data){
window.location.reload(true);
}
Ale tým predsa znovunačítaš celú stránku aj JS skripty sú ukončené a znovu-načítané. Teda sú vrátené dáta „zahodené“.
Witiko
Profil
Chamurappi:
Já jsem po kvalitně strávené chvíli s Google našel následující zmínku:

One exception to JavaScript’s case sensitivity is Internet Explorer 3. In this particular browser, client-side objects and properties are case-insensitive. This exception does not pose a problem for scripts you might write today. It merely means that some older scripts relying on Internet Explorer’s case insensitivity might not work in modern browsers. #1, #2

Je možné, že peta hovořil o tomhle. :-)
Monkeys
Profil *
Chamurappi:
Proč vlastně posíláš data AJAXem, když vzápětí znovunačteš stránku? (Někdy to uplatnění mít může, ale moc často ne, tak jsem zvědavý…)

Pretoze som nenasiel iny sposob ako po zadani udajov a kliknuti tlacitka na ulozit odoslat data na server.
Bez toho riadku som klikal klikal ale nic sa nestalo nechcelo mi to odoslat.

To co tu hovorite o velkych a malych pismenach mozem len potvrdit stalo sa to aj mne.
Netestoval som kod v Mozile a po naslednom uverejneni som zistil ze kod nefunguje problem bol v jednom malom preklepe v nazve premennej. (popisProduktu -> popisproduktu = 2 rozdielne veci )

M.


Este som zabudol ze ten kod bol napisany pre jQuery 1.4.4 mozno v novych je to uz opravene ale to som netestoval


Este prikladam obrazok ako to v skutocnosti vyzera a funguje Nahlad po odoslani potrebujem hned mat data aktualizovane neviem ci sa to da aj bez toho reloadu.

M.
_es
Profil
Monkeys:
Pretoze som nenasiel iny sposob ako po zadani udajov a kliknuti tlacitka na ulozit odoslat data na server.
Tak prečo na to nepoužiješ normálne odoslanie formulára a dávaš tam hentie JS podivnosti?
Monkeys
Profil *
_es:
Pozri sa vyvijam si svoj vlastny administracny system a chcem to mat ako aj po grafickej aj funkcnej stranke co najefektivnejsie a aby to aj dobre vyzeralo.
Bezny uzivatel nerad klika na milion veci ja sa snazim aby bolo vsetko tak neak po ruke a lahko a hned editovatelne.

M.
_es
Profil
Monkeys:
Ako to súvisí s tým, že to vo výsledku funguje ako normálny formulár spracovaný serverom ( Formuláře » form s vyplneným atribútom action), no s rôznymi problémami či v niektorých prehliadačoch nefunguje vôbec, no pritom to normálny formulár nie je?
Chamurappi
Profil
Reaguji na Witika:
Teď jsem zjistil, že mi ve standalone Exploreru 3 nefunguje JavaScript :-(
Budu si muset pořídit Windows 95, abych to vyzkoušel.

Je možné, že peta hovořil o tomhle. :-)
Pravděpodobnější je, že chodí na tuto diskusi z paralelního vesmíru. Na jeho straně stihli Husa upálit dřív, než vymyslel nabodeníčka, což ovlivnilo spoustu technických detailů, které nám pak při pohledu z naší strany připadají absurdní.


Reaguji na Monkeyse:
ten kod bol napisany pre jQuery 1.4.4 mozno v novych je to uz opravene
Žádná javascriptová funkce (což jQuery je) nemůže ovlivnit, že v JavaScriptu záleží na velikosti písmen. (Nebo jsem špatně pochopil, čeho se tato věta týkala?)

chcem to mat ako aj po grafickej aj funkcnej stranke co najefektivnejsie a aby to aj dobre vyzeralo
V čem se podle tebe liší odeslání formuláře AJAXem následované znovunačtením od obyčejného odeslání formuláře?
_es
Profil
Witiko:
Je možné, že peta hovořil o tomhle. :-)
Skôr išlo o prejav niečoho iného, odlišne sa správajúceho v rôznych prehliadačoch, vyvolaného veľkosťou písmen, ako napríklad kolidovanie/nekolidovanie názvu s automaticky vytváranými globálnymi objektami z atribútov name či id, ak bola globálna premenná vytvorená bez príkazu var. Asi ťažko niekto „1-3 roky zpet“ používal IE3.
Witiko
Profil
_es:
To by bylo i poměrně uvěřitelné. Nemůžu sice najít žádné zmínky o prohlížečích, které by window[id] emitovaly case-insenzitivně, ale přinejmenším v css prohlížeče id a třídy historicky zpracovávaly bez ohledu na velikost písmenek.
_es
Profil
Witiko:
Nemůžu sice najít žádné zmínky o prohlížečích, které by window[id] emitovaly case-insenzitivně
Myslel som iné, to, že pri kolízii názvu sa rôzne prehliadače pri definícii globálnej premennej bez var môžu správať rôzne. A to, že niektoré prehliadače tie globálne objekty vytvárajú a niektoré nie. Teda veľkosť písmen ovplyvní len to, či ku kolízii príde alebo nepríde. Teda nejde o to, či by bolo niečo „case insensitive“.
Monkeys
Profil *
Chamurappi:
(Nebo jsem špatně pochopil, čeho se tato věta týkala?)

dam priklad:
<input name="popisProduktu" .... /> // input
$('[name=popisproduktu]').val() //toto neprejde v mozile

V čem se podle tebe liší odeslání formuláře AJAXem následované znovunačtením od obyčejného odeslání formuláře?
Zda sa mi pohodlnejsie napisat ajaxovy kod + neaky SQL dotaz ako odkliknut produkt pre dalsiu upravu a tam pisat php

M.
Chamurappi
Profil
Reaguji na Monkeyse:
toto neprejde v mozile
To je správně. Neprojde to nikde, ne?

Té reakci na druhou otázku vůbec nerozumím. V obou případech přeci zpracováváš vstup někde na straně serveru… tak v čem je rozdíl?


Reaguji na Witika:
přinejmenším v css prohlížeče id a třídy historicky zpracovávaly bez ohledu na velikost písmenek
V HTML atributu id na velikosti písmen záležet nikdy nemělo. Podle SGML pro něj platí stejná pravidla jako pro názvy značek a atributů (viz důkaz), takže by implementace neměla mít k velikosti písmen přístup. Autoři specifikace HTML 4.01 si to neuvědomili a vyslovili protichůdné pravidlo, takže si prohlížeče mohli vybrat, který standard poruší :-) (a nakonec všechny porušují SGML)
Monkeys
Profil *
Chamurappi:
To je správně. Neprojde to nikde, ne?
V IE to prejde

V obou případech přeci zpracováváš vstup někde na straně serveru… tak v čem je rozdíl?

Ked si pozries ten odkaz na obrazok tak na lavo je nazov produktu na ktory sa musi kliknut aby sa otvorili dalsie volby a nastavenia. Tym ze vyuzijem ajaxove okno cez fancybox umoznim uzivatelovy aby si jednoducho a elegantne upravil to co potrebuje v jednom kroku.

Mozno je to diskutabilne ze je to jedno ale stretavam sa s tym ze ludom sa nechce moc nastavovat a hladat.

M.
_es
Profil
Monkeys:
Ked si pozries ten odkaz na obrazok tak na lavo je nazov produktu na ktory sa musi kliknut aby sa otvorili dalsie volby a nastavenia. Tym ze vyuzijem ajaxove okno cez fancybox umoznim uzivatelovy aby si jednoducho a elegantne upravil to co potrebuje v jednom kroku.
Asi stále nerozumieš. Predpokladám, z predchádzajúceho, že chceš, aby sa po kliknutí na aktualizovať znovunačítala celá stránka. Teda prečo nie je aktualizovať normálne odosielacie tlačítko v normálnom formulári na serverový skript, ktorý vráti celú aktualizovanú stránku? Teda funkčnosť úplne rovnaká bez hocijakého JS kódu. Prečo do toho „nasilu“ dávaš tie nadbytočnosti?
Monkeys
Profil *
_es:
Prečo do toho ‚nasilu‘ dávaš tie nadbytočnosti?

To ako keby si sa tu na diskusii opytal tvorcov preco sem natahuju JS na upravu sirky okna a inych vychytavok :)


M.
_es
Profil
Monkeys:
Asi som sa namáhal zbytočne, keď si ani poriadne neprečítaš napísané, aby si to pochopil. Mimochodom, tvorca tých „vychytávok“ ti píše približne to isté, čo ja.
Chamurappi
Profil
Reaguji na sebe [#17]:
Budu si muset pořídit Windows 95, abych to vyzkoušel.
Tak je to pravda, Explorer 3 skutečně nerozlišoval mezi document a dOcUmEnT. Ale tuhle toleranci projevoval jen k objektům hostitelského prostředí, array už pro něj na rozdíl od Array neexistuje. Zajímavé je, že na MSDN tvrdí, že JScript 1.0 pole vůbec nepodporoval, což zjevně není pravda. I v jiných věcech historii trochu zkreslují, třeba u smyčky for-in píšou, že ji podporují až v JScriptu 5.0, což odpovídá Exploreru 5, ale mně funguje i v té trojce (tedy v JScriptu 1.0).


Reaguji na Monkeyse:
ako keby si sa tu na diskusii opytal tvorcov preco sem natahuju JS na upravu sirky okna a inych vychytavok
Klidně se mě zeptej. Ty vychytávky tu jsou proto, že jsem usoudil, že se budou hodit.
Ve tvém případě se AJAXové odeslání formuláře pravděpodobně nehodí. Zřejmě jsi nepochopil, že to, jakým způsobem bude formulář odesílaný, nijak nesouvisí s tím, jak bude zobrazený.
_es
Profil
Chamurappi [#27]:
Pri IE, možno len pri starších verziách, je tuším možné doinštalovať novšiu verziu JScriptu, pričom IE zostane v staršej verzii. Alebo sú možno odlišné verzie pre beh JSriptu v operačnom systéme a v IE.
Chamurappi
Profil
Reaguji na _es:
Mám ve virtuálu čistou instalaci serverového Windowsu NT 4.0, v níž byl předinstalovaný Explorer 2 (s ním se nedalo skoro nikam dostat, jelikož neposílá hlavičku Host). Upgradoval jsem ho ručně na trojku, takže není možné, že by se do systému dostal novější JScript. Ale mohl bych to vyzkoušet, JScript 2.0 bych měl získat upgradováním IIS.

Zajímavé bylo, že jsem se při prvním spuštění Exploreru 3 ocitl na stránce Microsoftu, která mě upozornila, že web Windowsu 8 už není optimalizovaný pro Explorer 6 a že si mám nainstalovat Explorer 8.

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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