Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ajax-pyyntö ei toimi

Eki++ [10.06.2014 12:20:23]

#

Sivustollani käyttäjillä on mahdollisuus jakaa asioita ryhmien kesken. Ajax-pyyntö ei (ilmeisesti) kuitenkaan tule palvelimelle asti. Js-funktioon asti päästään. Mikä tassä voisi olla vikana? Muut ajax-pyynnöt toimivat normaalisti.

Jaa tekstiä:
<input id="text_group_1" type="text" name="text" size="30" />
<input type="button" value="Jaa" onclick="javascript:share('group', 1, 6)" />

Share-funktio:

function share(with_, id, fromid) {
    $.post("/eMessenger2/ajax.php?event=share",
    {
        from: fromid,
        what: what,
        sharing: sharing,
        withname: with_,
        withid: id
    });
}

Ajax.php:

switch($_GET["event"]) {
	// ...
case "share":
        echo "Perille tuli";
        $what = 0;
        switch ($_POST["what"]) {
            case "text":
                $what = 1;
                break;
            case "pic":
                $what = 2;
                break;
            case "vid":
                $what = 3;
                break;
            case "location":
                $what = 4;
                break;
            default:
                break;
        }
        $db->execute("INSERT INTO sharings (fromid, sharingtype, time, content, withid) VALUES(?,?,NOW(),?,?)", array($_POST["fromid"], $what, $_POST["sharing"], $_POST["withid"]));
        echo "Jaettu";
        break;
	//...
}

Grez [10.06.2014 12:28:55]

#

Kysyisin, että millä tavalla olet debugannut tuota? Mitä selaimen kehittäjäkonsoli esimerkiksi sanoo aiheesta?

Eki++ [10.06.2014 12:30:19]

#

Firebug kertoo errorista jQuery-filussa:

firebug kirjoitti:

TypeError: 'click' called on an object that does not implement interface HTMLElement.

...w(),xc=/\?/,yc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})...

jquery.min.js (line 4)

Grez [10.06.2014 12:37:02]

#

Itselläni kun kokeilin Chromella niin tulee Illegal Invocation virheilmoitus.

Kun saat virheen jQueryssä, niin yleensä vika on koodissa jossa sitä kutsutaan.
Jos katsot stack tracesta miltä oman koodisi riviltä virheeseen johtanut kutsu tulee, niin se on tietenkin tuo jossa kutsut jQueryä. Jos laitat breakpointin siihen ja katsot miltä koodisi muostama objekti näyttää, niin:

{from: 6, what: undefined, sharing: jQuery.fn.init[0], withid: "group"}

Luultavasti haluaisit sharingiin jotain muuta kuin jQuery-funktion.

Eki++ [10.06.2014 12:45:22]

#

Kiitos, mulla oli sharing-muuttujassa arvo:

var sharing = $("#" + what + "_sharediv_" + with_ + "_" + id);

Oli siis unohtunut .val() tuolta lopusta.

Vastaus

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

Tietoa sivustosta