AJAX Nestable JSON data to PHP with AJAX

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

16/06/2013 22:21:37
Quote Anchor link
Hallo u allen.

Ik heb een vraagje. Op deze pagina heb ik een stukje code staan die dmv een jquery plugin de menu-items kan ordenen. Dit werkt allemaal prachtig maar nu moeten we het ook nog opslaan natuurlijk.

Er word gebruik gemaakt van een "serialize" deze rauwe code echo ik voor jullie in de console van je browser.
"console.log($('#dragmenuitems').nestable('serialize'));"

Ook word er een functie aangesproken die de data via AJAX moet verzenden naar een andere pagina, maar hier gebeurd helaas niet zoveel en zit mijn probleem.

Ik verstuur de data naar mijn mening gecodeerd in JSON naar een PHP pagina dmv POST en daar moet de hele rotzooi voor de test even geprint worden.

Dit is de code die ik gebruik om dit voor mekaar te boksen.


Javascript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Sortable menu-items
    $('#dragmenuitems').nestable({
    }).on('change', function()
    {
    updateMenuOrder($('#dragmenuitems').nestable('serialize'));
    });


// En de functie (die natuurlijk word gedefineerd voopdat de bovenstaande code word aangeroepen
function updateMenuOrder(jsondata)
{
    $.ajax({
    type        : 'POST',
    data        : jsondata,
    dataType    : 'json',
    url        : 'lemon/menu/test'
   });
}


// En dan uiteindelijk de php om het de echoen
public function test()
    {
    printr($_POST);
    }



Ik gebruik Codeigniter daarom is de pagina test een method/function. Dit werkt wel alleen hij laat niets zien.
Wat doe ik fout?


Link naar de pagina hier
Alvast bedankt.
 
PHP hulp

PHP hulp

26/11/2024 11:46:25
 
Erwin H

Erwin H

16/06/2013 22:54:30
Quote Anchor link
Dit krijg ik in mijn console:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
[Object { id=4, children=[1]}, Object { id=15}]

Op zich niet zo'n probleem.

Alleen dit komt niet goed mee in je ajax call daar zie ik namelijk alleen maar 'undefined'. Ook is het zo dat je op deze manier niet iets in een JSON formaat verstuurt. Als je in een ajax call als datatype 'json' meegeeft, dan betekent dat dat de browser de response van de server verwacht in json. Met de data die je verstuurt wordt niets gedaan. Als je de verstuurde data in json wilt hebben zal je dat zelf moeten bouwen.

Het vreemde is dus waarom je niet de juiste gegevens in de ajax call krijgt.
Waar het denk ik mis gaat is de manier waarop je de gegevens mee stuurt. Je hebt nu dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$.ajax({
    type        : 'POST',
    data        : jsondata,
    dataType    : 'json',
    url        : 'lemon/menu/test'
});

Maar in data verwacht jquery een object. jsondata in dit geval, is een object (weliswaar een array, maar ook dat is een object). Het zal dus proberen die array te gebruiken en dat lukt niet. Probeer eens dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$.ajax({
    type        : 'POST',
    data        : {'menu': jsondata},
    dataType    : 'json',
    url        : 'lemon/menu/test'
});

Nu zou je in elk geval een menu element in de $_POST array moeten zien, of de data dan al goed meekomt is nog even de vraag.
 

16/06/2013 23:47:06
Quote Anchor link
Ja dat is precies wat ik wou hebben. Super bedankt! Ik was er bijna maar heb nog te weinig met JSON gedaan. Wellicht had ik de jquery handleiding ook kunnen gebruiken maar dit is super duidelijk.

Mijn volgende stap is om de data nu op de staan (updaten) in mysql. Hopelijk gaat me dit lukken anders kom ik toch nog eventjes bij jou aankloppen.

Bedankt Erwin.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.