Rajouter une ligne a un tableau dans wordpress
Résolu
hypo
-
hypo -
hypo -
Bonjour,
Alors j'ai un formulaire qui est sensé rajouter une ligne dans la liste de mes sliders avec ajax,
J'arrive bien a la créer dans ma BDD mais je n'arrive pas a l'afficher directement dans ma page de gestion de slider:
mon code:
PHP:
JS:
HTML:
Donc le but est d'ajouter une ligne a la fin du tableau "sliders". Dans mon JS le console.log(response) revois bien la nouvelle ligne, mais pour une raison qui m'est inconnue le $('#sliders tbody tr:last').append(response); ne fonctionne pas.
Merci de votre aide !
Alors j'ai un formulaire qui est sensé rajouter une ligne dans la liste de mes sliders avec ajax,
J'arrive bien a la créer dans ma BDD mais je n'arrive pas a l'afficher directement dans ma page de gestion de slider:
mon code:
PHP:
function Netlib_add_slider(){ check_ajax_referer( 'Netlib' ); require_once plugin_dir_path( __FILE__ ) . 'admin/class/Manage_sliders.php'; if (isset($_POST['slider_datas'])){ $tab = array(); foreach ($_POST['slider_datas'] as $datasArray) { $tab[$datasArray['name']] = $datasArray['value']; } $newSliderId = Manage_sliders::add_slider($tab['slider_name'], $tab['slider_type'], $tab['slider_cat']); $newTabRow = '<tr data-index="'.$newSliderId.'" data-position="0"> <td>'.$newSliderId.'</td> <td>'.$tab['slider_name'].'</td> <td>'.$tab['slider_type'].'</td> <td>'.$tab['slider_cat'].'</td> <td>1</td> <td>0</td> </tr>'; echo $newTabRow; } }
JS:
$(document).ready(function (){ $('form.Netlib_addslider').on('submit', function (e) { var slider_datas = $( this ).serializeArray(); e.preventDefault(); $.ajax({ type: 'post', url: netlib_custom_ajax.ajax_url, dataType: 'text', data: { slider_datas: slider_datas, _ajax_nonce: netlib_custom_ajax.nonce, action: 'Netlib_add_slider' }, success: function (response) { $('#sliders tbody tr:last').append(response); console.log(response); } }); }); });
HTML:
<table class="table" id="sliders"> <thead> <tr> <th scope="col">#</th> <th scope="col">Nom</th> <th scope="col">Type</th> <th scope="col">Categorie de Produits</th> <th scope="col">Status</th> </tr> </thead> <tbody> <ul id="sliders" class="list-group"> <?php foreach($sliders as $slider) { echo '<tr data-index="'.$slider->id.'" data-position="'.$slider->Position.'">'; foreach($slider as $val){ echo '<td>'.$val; } echo '</tr>'; } ?> </ul> </tbody> </table> <form method="post" class="Netlib_addslider"> <div class="row"> <div class="col"> <input type="text" class="form-control" placeholder="Nom ou text de présentation du slider" name="slider_name"> </div> <div class="col"> <select class="custom-select mr-sm-2" name="slider_type"> <option selected>Type de Slider</option> <option value="1">Livres</option> <option value="2">Papeterie</option> <option value="3">Presse</option> </select> </div> <div class="col"> <input type="text" class="form-control" placeholder="ID de la categorie de produits a afficher" name="slider_cat"> </div> <div class="col"> <input type="submit" name="creat_slider" value="Créer"> </div> </div> </form>
Donc le but est d'ajouter une ligne a la fin du tableau "sliders". Dans mon JS le console.log(response) revois bien la nouvelle ligne, mais pour une raison qui m'est inconnue le $('#sliders tbody tr:last').append(response); ne fonctionne pas.
Merci de votre aide !
Configuration: Windows / Firefox 84.0
A voir également:
- Rajouter une ligne a un tableau dans wordpress
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Partager photos en ligne - Guide
1 réponse
Bonjour
L'append, tu veux le faire sur le tableau pour ajouter une ligne ?
Et donc pas sur la dernière ligne, lui ajouter du contenu...
ça serait donc plutot
de plus, ton UL n'a rien à faire là....
ce n'est pas la strucutre "normale" d'un tableau...
Soit tu fais une liste ( ul li )
soit tu fais un tableau ...
L'append, tu veux le faire sur le tableau pour ajouter une ligne ?
Et donc pas sur la dernière ligne, lui ajouter du contenu...
ça serait donc plutot
$('#sliders tbody').append(response);
de plus, ton UL n'a rien à faire là....
ce n'est pas la strucutre "normale" d'un tableau...
Soit tu fais une liste ( ul li )
soit tu fais un tableau ...
hypo
Oh mince sérieux, c'etait l'ul qui merdé, merci du coups de pouce !