Ik zoek naar een oplossing om de jQuery nestedSortable plugin werkend te krijgen. 't Is te zeggen: alles gaat goed, behalve het doorsturen van de object gegevens die de plugin ter beschikking stelt.
Wanneer ik de console check na elke boomstructuur aanpassing, dan krijg ik een overzicht van objecten te zien:
Kan je dan nooit toArray gebruiken als je iets doorstuurt via POST? Serialize geeft een erg simpele string terug met enkel de id's en parent id's van de nodes :(
OK, je info helpt me al aardig op weg, 'k snap in ieder geval het gebruik van serialize() en unserialize() en da's al een grote stap vooruit ;)
Het vreemde is echter dat de serialize niet lijkt te werken. Wanneer ik in de php file een urserialize doe, dan krijg ik namelijk de volgende foutmelding:
Warning (2): unserialize() expects parameter 1 to be string, array given [APP\Plugin\CoasterCms\Controller\CmsPagesController.php, line 107]
De code lijkt me nochtans niet verkeerd te zijn:
<script>
$(function() {
var ns = $('.sortable').nestedSortable({
'listType': 'ul',
'handle': 'div',
'items': 'li',
'toleranceElement': '> div',
'isTree': true,
'opacity': 0.5,
'cursor': 'move',
'revert': 100,
'stop': function(){
var tree = $(this).nestedSortable('serialize');
// POST naar server ($.post of $.ajax)
$.ajax({
url: '<?php echo $this->here; ?>',
data: tree,
type: 'POST'
});
}
});
});
</script>
Enig idee waarom de serialize het bij mij niet doet?
Het werkt mogelijk al goed zonder unserialize() aan de PHP-kant. Heb je geprobeerd je $_POST data eens ongewijzigd te dumpen? PHP regelt veel automatisch (URL decoding, het (terug)zetten in een array). Mogelijk hoef je niets aan te passen in je $_POST en is alles direct bruikbaar?
Als dat niet werkt moet je je informatie mogelijk toch anders "verpakken" aan de verzend-kant.
Wat ik met mijn "Je kunt arrays prima serialiseren ;-)." reactie bedoelde is:
je gebruikt de toArray() methode van je nestedSortable tree, en vervolgende POST je die data door deze te serializen via de jQuery-functie .serialize().
Fan-tas-tisch, dit is echt wat ik nodig had! 'k Heb hier echt wel veel mee bijgeleerd, dus m'n dank is groot!
't Was nog even zoeken om de JSON data in CakePHP om te zetten, maar da's uiteindelijk ook gelukt. Dikke merci voor de opvolging Thomas!