Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Jquery + Ajax tallentaminen

Sivun loppuun

manninen [22.12.2011 14:44:24]

#

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)!

Metabolix [22.12.2011 14:55:45]

#

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.

manninen [22.12.2011 15:13:32]

#

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.

Metabolix [22.12.2011 15:27:41]

#

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.

manninen [22.12.2011 15:58:57]

#

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);

Metabolix [22.12.2011 16:05:07]

#

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.

manninen [22.12.2011 18:25:40]

#

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.

Metabolix [22.12.2011 18:28:28]

#

Kuten jQueryn ohjeissa selvästi sanotaan, käytä funktiota jQuery.post tai lisää nykyiseen koodiisi asetus type: 'POST'.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta