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 !