Bonjour,
J'utilise la petite fonction suivante afin d'ajouter ou d'enlever dynamiquement des champs à mon tableau malheureusement, bien que à l'écran tout soit en ordre, lorsque je valide, aucune donnée n'est présente - rien n'existe
Le but est de créer sur le nouveau "New Position" pour ajoute une nouvelle ligne, possibilité de l'enlever si on clique sur le bouton "Remove" correspondant.
A noter que si il y a déjà une ligne en base de donnée, que je l'enlève et sauve, tout fonctionne comme prévu. C'est vraiment la partie "append()" qui ne joue pas.
Pour l'ajout en base de donnée, c'est du super basique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 elseif (on fait nos tests ici...) { $positions = ( ! empty($_POST['positions'])) ? maybe_serialize($_POST['positions']) : NULL; // on ajoute dans la bdd nos donnés - seul souci est que j'ai droit uniquement à NULL :mrgreen: }Mon tableau ressemble à cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 (function ($) { $.fn.exists = function() { return $(this).length > 0; }; $.remove_position = function(position_id) { $('#position-' + position_id).remove(); }; $.add_position = function() { if ($('#positions-table tbody tr:last').exists()) var getNumber = $('#positions-table tbody tr:last').attr('id').replace('position-', ''); else var getNumber = 0; var addNumber = getNumber + 1; $('#positions-table > tbody:first').append('<tr id="position-' + addNumber + '"><td><input type="text" name="positions[' + addNumber + '][id]" value="1" size="4" /></td><td><input type="text" name="positions[' + addNumber + '][name]" value="" /></td><td><input type="text" name="positions[' + addNumber + '][order]" value="0" size="4" /></td><td><select name="positions[' + addNumber + '][show]"><option value="no">No</option><option value="yes" selected="selected">Yes</option></select></td><td><input type="button" name="remove_position" value="Remove" class="button" onclick="jQuery.remove_position(' + addNumber + ');" /></td></tr>'); }; })(jQuery);
Est-ce que vous auriez la moindre idée d'ou peut venir le souci ? J'utilise une fonction similaire sur des paragraphes pour un systèmes de sondage où les champs sont ajoutés dynamiquement et aucun souci. A noter, je ne sais pas si cela a son importance, que c'est développé sous WordPress (l'autre fonction de sondage est en standalone PHP5 sur du code perso.).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <table id="positions-table" class="widefat"> <thead> <tr> <th>ID</th> <th>Name</th> <th>Order</th> <th>Show</th> <th><a href="#position" onclick="jQuery.add_position();">New Position</a></th> </tr> </thead> <tfoot> <tr> <th>ID</th> <th>Name</th> <th>Order</th> <th>Show</th> <th><a href="#position" onclick="jQuery.add_position();">New Position</a></th> </tr> </tfoot> <tbody><tr id="position-66"><td><input type="text" name="positions[66][id]" value="2" size="4" /></td><td><input type="text" name="positions[66][name]" value="Latéral Droit II" /></td><td><input type="text" name="positions[66][order]" value="1" size="4" /></td><td><select name="positions[66][show]"> <option value="no">No</option> <option value="yes" selected="selected">Yes</option> </select></td><td><input type="button" name="remove_position" value="Remove" class="button" onclick="jQuery.remove_position(66);" /></td></tr></tbody></table>
Merci beaucoup,
Max'
Partager