Nu moet ik ook de mogelijkheid hebben om te sorteren en dat wil ik als volgt doen:
Dit is nu mijn array wanneer ik de lijst post:
Array
(
[title] => lijsttitle
[1. categorie] => Array
(
[0] => vraag1
)
[2. categorie ] => Array
(
[0] => vraag1
[1] => vraag2
)
)
Deze array genereer ik door mijn form te serializen via jquery/ajax en te posten naar een PHP script.
Daar doe ik vervolgens dit:
$arr = $_POST['lijst'];
$store = [];
// pull off first arr element
$title = array_shift($arr);
// save title to store
$store['title'] = $title['name'];
$currCat = '';
foreach($arr as $a) {
$val = $a['value'];
// handle category
if($a['name'] == 'category[]') {
// save cat name
$currCat = $val;
// init questions array
$store[$currCat] = [];
}
else {
// add question to question array
$store[$currCat][] = $val;
}
}
Via jQuery zet ik voor elke key van de categorie een getal met een punt. Ik wil graag die key exploden op de punt en het getal gebruik in een database column genaamd 'ordering', wanneer ik de lijst sorteer en opsla update hij alle order nummers voor die rij (en trimt de punt zodat de categorie naam zonder cijfer en punt opgeslagen kan worden in de database).
Hoe kan ik dat het beste aanpakken?
Dit is hoe ik mijn formulier post via ajax:
$( ".lijstbutton" ).on( "click", function( event ) {
event.preventDefault();
url = 'includes/createlist.php';
$lijst = $( '#lijstform' ).serializeArray();
var posting = $.post(url, {
lijst: $lijst
});
posting.done(function( data ) {
$( ".lijstresult" ).empty().slideDown('fast').append( data );
});
//console.log( $( '#lijstform' ).serializeArray() );
});
Het sorteren werkt al, mijn vraag gaat alleen over het exploden van de cijfers zodat ik een sorteervolgorde kan opslaan in mijn database.