Mikä menee alla olevassa koodissani harakoille. Näyttäisi siltä, että sivua joka on määritetty url muuttujassa ei koskaan edes kutsuta, jonka vuoksi tulee virheilmoitus.
<script type="text/javascript" src="js/jquery-latest.js"></script> <script type="text/javascript"> $("form").submit(function() { if($("#kylanNimi").val() != "") { var kyla = $("#kylanNimi").val(); alert(kyla); var url = './inc/toiminnat.inc.php'; jQuery.ajax(url,{ data:{ "t":"TallennaKylanTiedot", "kylanNimi": kyla }, success: function(data, textStatus,jqXHR){ alert('Load was performed.'); }, error:function(jqXHR, textStatus, errorThrown){ alert(jqXHR +' '+ textStatus +' '+ errorThrown); }} ); return true; } alert('Kylän nimi on täytettävä'); return false; }); </script>
Mod. korjasi oikeat kooditagit (HTML)!
Aivan kuin olisit TehoGamesin uusi koodaaja. ^^
Olisiko ihan mahdotonta katsoa selaimen konsolista (Operan kehittäjäkonsoli, Chromiumin kehittäjäkonsoli, Firefoxin Firebug-laajennos), minkä osoitteen koodi oikeasti yrittää hakea? Veikkaan, että olet vain sekoillut jotain hakemistojen kanssa ja pyyntö menee väärään paikkaan.
Kannattaisi myös käyttää POST-pyyntöjä. Lisäksi säästäisit paljon vaivaa, jos tekisit lomakkeet ilman AJAXia ja lopuksi lisäisit kaikille lomakkeille samanlaisen AJAX-käsittelijän, joka lukee osoitteen ja kentät lomakkeesta.
Metabolix kirjoitti:
Aivan kuin olisit TehoGamesin uusi koodaaja. ^^
No, sitä nyt en kuitenkaan ole :)
Juu, ei Firebugin käyttö ole mahdotonta. Sen käyttäminen on minulle vain hieman uutta, mutta jos siitä ymmärsin yhtään niin todellakin yritän ladata sitä sivua missä olen, mutta miksi? Määritän mielestäni osoitteen missä toiminnot tulee tapahtua.
Kuulostaa oudolta. Tarkista nyt vielä, että olet tulkinnut oikein. AJAX-pyynnöt tulevat Net-välilehden XHR-kohtaan. Jos vaikka tällä sivulla klikkaat viestisi Muokkaa-linkkiä, pitäisi näkyä POST-pyyntö sivulle hae.php.
Olen tulkinnut väärin, koska kyseinen paikka on tyhjä luuunottamatta tätä virhettä.
prompt aborted by user
[Break On This Error] throw Components.Exception...by user", Cr.NS_ERROR_NOT_AVAILABLE);
Virheilmoituksesta en pysty noin vähäisen tiedon perusteella sanomaan paljonkaan. Nyt huomasin kuitenkin, että kyseessä on lomakkeen submit-tapahtuma mutta et missään vaiheessa estä lomakkeen normaalia lähetystä, joten koko AJAX-yrityksesi menee hukkaan.
Kiitos Metabolix!
Jälleen kerran häikäiset minut huomaamalla sellaisen asian, mitä en itse olisi huomannut millään. Juuri tämä asia oli ongelmani.
Mainitsit minulle, että olisi järkevämpää käyttä POST:ia GET:in sijaan. Miten tämän saa onnistumaan.
Kuten jQueryn ohjeissa selvästi sanotaan, käytä funktiota jQuery.post tai lisää nykyiseen koodiisi asetus type: 'POST'
.
Aihe on jo aika vanha, joten et voi enää vastata siihen.