Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ajax post väärä muoto

Sivun loppuun

runeberg [22.05.2012 21:49:10]

#

Moi. Osaiskohan joku neuvoa missä mättää, kun lähetän tietoja ajax postilla, niin käsittelijälle tulee pelkät arvot yhteen pötköön ja hukkaa avaimen? Käytän zendiä ja jqueryä. Tämäkin on toiminut ennen, mutta nyt vaan ei rokkaa. Vähän koodia malliksi:

var dataArray = $("#employee").serializeArray();
    var data = {};

    data.name = dataArray[1].value;
    data.address = dataArray[2].value;
    data.phone = dataArray[3].value;
    data.email = dataArray[4].value;
    data.password = dataArray[5].value;
    data.employee_id = dataArray[6].value;

    $.post("employee/add",data);

Js debuggerilla, niin post kohdassa data objekti näyttää tältä:

address: "moi"
email: "moi"
employee_id: "moi"
name: "moi"
password: "moi"
phone: "moi"

Eli näyttäis olevan kunnossa, mutta heittää 500 interval server erroria, ja kun php näyttää tältä:

public function addAction() {
        // action body
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(TRUE);

        if($this->getRequest()->isPost()) {
            $table = new Application_Model_Employee();
            $result = $this->getRequest()->getPost();
            file_put_contents('debug.txt', $result);
            $table->addEmployee($result['name'], $result['address'], $result['phone'], $result['email'], $result['password'], $result['employee_id']);
        }
    }

Jolloin debug.txt näyttää "moimoimoimoimoimoi" eli jostain syystä avain hukkuu.

Metabolix [22.05.2012 22:39:07]

#

Jos vaikka opettelisit käyttämään file_put_contents-funktiota ja taulukkomuuttujia, voisit saada järkeviä tuloksia. Kokeile vaikka jotain seuraavista:

file_put_contents("debug.txt", json_encode($result));
file_put_contents("debug.txt", var_export($result, 1));
file_put_contents("debug.txt", print_r($result, 1));

Lisäksi voisit viisastua, jos katsoisit, mikä virheilmoitus palvelimella tulee.

runeberg [23.05.2012 18:40:32]

#

Opetellaas sitte oikein. json encode näyttää tältä:
{"name":"moi","address":"moi","phone":"moi","email":"moi","password":"moi","employee_id":"moi"}

var_export näyttää tyhjää ja print_r tulostaa 1

Json encode näyttää oikealta, mutta jokin mättää. Kantaan "vienti" on oikein, eli tiedot menee oikeassa järjestyksessä moduulin funktiolle eikä ole kirjoitusvirheitä. $.post.success() toteutuu virheilmoituksesta huolimatta.

EDIT: Nyt tallentuu kantaan (employee_id ja role_id on kannassa tyyppiä int, mutta en implementoinu niitä ennen syöttöä), mutta nyt kaikki arvot on pelkästään merkki {, paitsi numerot on 0

Lisäys: Ratkesi. Eli alkuperäinen oli ihan oikein, lukuunottamatta int muunnokksia. Kun poisti json encoden käytöstä, rupesi toimimaan.

The Alchemist [23.05.2012 22:55:17]

#

Teet tuon serialisoinnin JavaScriptillä suotta liian monimutkaisesti. Jo heti jQueryn post-metodin dokumentoinnissa on seuraava esimerkki:

$.post('foo.php', $('#form').serialize());

Metabolix [23.05.2012 23:01:06]

#

runeberg kirjoitti:

var_export näyttää tyhjää ja print_r tulostaa 1

Ilmeisesti muutit esimerkkejä omin nokkinesi ja poistit niistä funktioiden toiset parametrit. Älä tee muutoksia, jos et ymmärrä.

runeberg kirjoitti:

Lisäys: Ratkesi. Eli alkuperäinen oli ihan oikein, lukuunottamatta int muunnokksia. Kun poisti json encoden käytöstä, rupesi toimimaan.

Mitä ihmettä? :D Olikin aivan uusi idea, että korvattaisiin muuttujan oikea sisältö debug-tulosteella. Mitähän oikein kuvittelit tekeväsi?

makumaku [24.05.2012 07:34:26]

#

:D

runeberg [24.05.2012 07:37:54]

#

Metabolix kirjoitti:

Ilmeisesti muutit esimerkkejä omin nokkinesi ja poistit niistä funktioiden toiset parametrit. Älä tee muutoksia, jos et ymmärrä.

Juu, oli oma moka, en heti huomannu noita parametrejä, sain kyllä myöhemmin tulostettua, mutta en jaksanu lisäillä siitä tietoa tänne.

Metabolix kirjoitti:

runeberg kirjoitti:

Lisäys: Ratkesi. Eli alkuperäinen oli ihan oikein, lukuunottamatta int muunnokksia. Kun poisti json encoden käytöstä, rupesi toimimaan.

Mitä ihmettä? :D Olikin aivan uusi idea, että korvattaisiin muuttujan oikea sisältö debug-tulosteella. Mitähän oikein kuvittelit tekeväsi?

Eli jos sinä mitään ymmärrät, niin alunperinkään mitään vikaa post arrayn muodossa ollut, vaan ennen kantaan tallennusta piti "muuntaa" int tyyppiseksi. Tuo debug sekoilu tuli vasta kun en sitä vikaa huomannu ja yritin sitä selvittää ja solmuun se meni vasta noiden taulukkomuuttujien käytöstä. Mutta joo, en jaksa selittää tarkemmin, kun täällä jotkut haluaa käsittää asiat kuitenkin väärin.

qeijo [24.05.2012 09:55:05]

#

HAHAHA, teit virheen.

runeberg [24.05.2012 18:54:46]

#

qeijo kirjoitti:

HAHAHA, teit virheen.

Äitiski teki

qeijo [25.05.2012 08:20:47]

#

HAHAHA, teit virheen = sarkasmia.

Lebe80 [25.05.2012 09:54:45]

#

qeijo kirjoitti:

HAHAHA, teit virheen = sarkasmia.

Mun mielestä toi ei nyt ole kauheen hyvää sarkasmia.

lainaus:

Sarkasmi tarkoittaa pidemmälle vietyä suppeaa, jopa yhden lauseen huumoria tai purevaa ivaa.

Et lähinnä, jos olisit sanonu päinvastoin "Aika jännä juttu ettei toiminu, ku se oli noinkin hyvin tehty", olis ollu enemmän sarkastisempaa.

qeijo [25.05.2012 10:54:41]

#

Lebe80 kirjoitti:

qeijo kirjoitti:

HAHAHA, teit virheen = sarkasmia.

Mun mielestä toi ei nyt ole kauheen hyvää sarkasmia.

lainaus:

Sarkasmi tarkoittaa pidemmälle vietyä suppeaa, jopa yhden lauseen huumoria tai purevaa ivaa.

Et lähinnä, jos olisit sanonu päinvastoin "Aika jännä juttu ettei toiminu, ku se oli noinkin hyvin tehty", olis ollu enemmän sarkastisempaa.

Ei jumalauta... Oikeasti tosissaas? "Mun mielestä toi ei nyt ole kauheen hyvää sarkasmia.", hahaha.
Piristit tylsän työpäivän. :D :D :D

ps.

FU

Lebe80 [25.05.2012 10:59:44]

#

<3

Hyvä että olin avuksi

Grez [25.05.2012 11:05:03]

#

Satunnainen postaaja kirjoitti:

Ehdotan <sarcasm> -tagin lisäämistä HTML5-standardiin väärinkäsitysten vähentämiseksi netissä

W3C kirjoitti:

<sarcasm>Erinomainen ajatus</sarcasm>

Lebe80 [25.05.2012 11:07:02]

#

Grez:

<facebook-like-button>Like</facebook-like-button>

qeijo [25.05.2012 11:53:09]

#

<sarcasm>Kannatan</sarcasm>


Sivun alkuun

Vastaus

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

Tietoa sivustosta