Comment inciter les enfants et les id en jQuery Emboîtables plugin après faire glisser et de déposer l'objet et la mise à jour de la base de données?
Je suis en utilisant jQuery Emboîtables plugin pour créer un éditeur de menu pour un site web.
J'ai essayé d'obtenir l'élément ID et Enfants après que l'utilisateur clique sur les éléments de menu et de modifier leur position.
Question: je ne sais pas comment faire pour obtenir l'ID et les Enfants et de mise à jour dans la base de données.
Ici est jQuery Emboîtables plugin
<script>
$(document).ready(function () {
var updateOutput = function (e) {
var list = e.length ? e : $(e.target), output = list.data('output');
if (window.JSON) {output.val(window.JSON.stringify(list.nestable('serialize')));//, null, 2));
} else {
output.val('JSON browser support required for this demo.');
}
console.log(list.nestable('serialize'));
console.log(window.JSON.stringify(list.nestable('serialize')));
};
$('#nestable').nestable({
group: 1,
maxDepth: 7,
}).on('change', updateOutput);
updateOutput($('#nestable').data('output', $('#nestable-output')));
});
</script>
Voici HTML pour les menus
<div class="cf nestable-lists">
<div class="dd" id="nestable">
<ol class="dd-list">
<li class="dd-item" data-id="1"> <div class="dd-handle">Item 1 when parent == 0</div> </li>
<li class="dd-item" data-id="44"> <div class="dd-handle"> Item 2 when this parent_id == its id </div>
<ol class="dd-list">
<li class="dd-item" data-id="3"><div class="dd-handle">Item 3</div></li>
<li class="dd-item" data-id="4"><div class="dd-handle">Item 3</div></li>
<li class="dd-item" data-id="5"><div class="dd-handle">Item 3</div></li>
<li class="dd-item" data-id="6"><div class="dd-handle">Item 3</div></li>
</ol>
</li>
</ol>
</div>
</div>
Le résultat sur Console
[{"id":1},{"id":44,"children":[{"id":3},{"id":4},{"id":5},{"id":6}]}]
Édition
Dans ma structure, je veux mettre à jour des menus lors de la Parent_id == id où les menus id et de créer un niveau de menus élément bu nombre de M_order. Mais je ne sais pas à créer cette structure.
Et voici var_dump($this->input->post('list'));
1 =>
array (size=1)
'id' => string '2' (length=1)
2 =>
array (size=1)
'id' => string '3' (length=1)
3 =>
array (size=1)
'id' => string '4' (length=1)
4 =>
array (size=1)
'id' => string '5' (length=1)
5 =>
array (size=2)
'id' => string '6' (length=1)
'children' =>
array (size=1)
0 =>
array (size=2)
...
Voici les images de mon Table structure et les menus
- Quel est votre fichier PHP pour le stockage/récupération de ces données à partir de la base de données ressembler? Et quelle est la structure de la table de base de données qui contient cette information? Et quelle est la DB fournisseurs, MSSQL, MySQL?
- Je ne sais pas le faire en PHP et j'ai aussi comment puis-je trouver des Id et des enfants, et Comment puis-je mettre à jour m_order lorsque l'utilisateur changement de position d'élément de
- Cette exigence rend votre question est trop large. Stackoverflow est un Q&Un site, où il s'attend à ce que vous essayez des choses par vous-même d'abord, et lorsque vous êtes coincé, vous pouvez poser des questions précises. Jetez un oeil à la Comment demander page d'aide. Cela dit, cela ressemblait un peu de plaisir, alors je suis allé de l'avant et a écrit un script PHP pour enregistrer la commande à chaque changement. Mais c'est un générique de mise en œuvre, vous aurez probablement à le modifier pour le faire fonctionner pour votre page. J'ai édité ma réponse à inclure, check it out.
Vous devez vous connecter pour publier un commentaire.
Pour envoyer la liste de PHP, vous devez changer votre
updateOutput
fonction pour afficher la liste des tâches via AJAX:En PHP, vous recevrez
$_POST['list']
, qui ressemble comme indiqué ci-dessous. Dans ce cas, j'ai traîné le 4ème point (n ° 6) à la 2e place (après l'id 3) sur la liste, de sorte que l'ordre attendu est3, 6, 4, 5
:Alors vous pouvez simplement parcourir ce tableau et de mettre à jour votre base de données en conséquence.
Modifier: afin de sauvegarder les données en PHP, vous devrez utiliser la récursivité pour accéder à tous les enfants de tableaux qui pourraient exister. J'ai écrit un script simple qui permettra d'économiser sur chaque commande de changement:
index.php
saveList.php
pdoConnection.php
Définition de la Table (MSSQL)