Dans PHP MySQL, ajoutez les valeurs POST par défaut aux champs de ligne d'entrée créés dynamiquement.
P粉409742142
2023-07-30 10:10:35
<p>Je développe un petit formulaire HTML intégré à un tableau. Le tableau comporte un champ de saisie appelé « nom » qui affiche la date actuelle comme valeur par défaut. Cela fonctionne très bien pour la première rangée. Cependant, lorsque j'ajoute dynamiquement des lignes supplémentaires, les nouveaux champs de saisie n'affichent pas la valeur de date par défaut. Voici ma configuration de code actuelle : </p>
<pre class="brush:html;toolbar:false;"><html>
<corps>
<table class="table table-bordered">
<thead class="table-success" style="background-color: #3fbbc0;">
<tr>
<th width="15%"><center>Service</th>
<th width="5%"></th>
<th>
<button type="button" class="btn btn-sm btn-success" onclick="BtnAdd()">Ajouter un élément</button>
≪/th>
≪/tr>
≪/tête>
<tbody id="TBody">
<tr id="TRow" class="d-none">
<td><input type="text" name="nom[]" id="nom" value="<?php echo date("Y-m-d"); ?>"></td>
<td class="NoPrint">
<button type="bouton" class="btn btn-success" style="line-height: 1;" onclick="BtnDel(this)">x</button>
</td>
≪/tr>
</tcorps>
</tableau>
<script type="text/javascript">
// Script pour ajouter des lignes dynamiques dans le tableau
fonction BtnAdd() {
var v = $("#TRow").clone().appendTo("#TBody");
$(v).find("input").val('');
$(v).find("input").autocomplete({ source : 'backend-script.php' });
$(v).removeClass("d-none");
$(v).find("th").first().html($('#TBody tr').length - 1);
}
fonction BtnDel(v) {
$(v).parent().parent().remove();
$("#TBody").find("tr").each(function(index) {
$(this).find("th").first().html(index);
});
}
</script>
</corps>
</html>
≪/pré>
<p>J'ai besoin de conseils pour que ces champs créés dynamiquement affichent également la date actuelle comme valeur par défaut. Merci beaucoup pour votre aide dans mon projet d'études. </p>
Le problème semble être que lors de la création dynamique de nouvelles lignes, vous définissez la valeur du champ de saisie sur une chaîne vide. C'est pourquoi la nouvelle ligne n'affiche pas la date actuelle.
Vous pouvez modifier la fonction BtnAdd() pour définir la valeur du nouveau champ de saisie à la date actuelle. Vous pouvez obtenir la date actuelle en JavaScript comme ceci :
new Date().toISOString().split('T')[0]
.Jetez un oeil :
function BtnAdd() { /*Add Button*/ var v = $("#TRow").clone().appendTo("#TBody") ; var currentDate = new Date().toISOString().split('T')[0]; // Get the current date $(v).find("input").val(currentDate); // Set the value of the new input field to the current date $(v).find("input").autocomplete({ source: 'backend-script.php' }); $(v).removeClass("d-none"); $(v).find("th").first().html($('#TBody tr').length - 1); }