Modifier ligne d'une table en javascript

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
codeMaker
Messages : 1
Enregistré le : 26 oct. 2017, 20:05

Modifier ligne d'une table en javascript

Message par codeMaker » 26 oct. 2017, 20:11

Jai mis en place un formulaire à remplir.
Après remplissage quand l'utilisateur clique sur ajouter nouvelles informations.
Les informations qui avaient saisi dans le formulaire est rangé dans le tableau avec possibilité de modifier et supprimer en utilisant du javascript.
J'arrive pas à modifier une ligne après le clique sur le bouton modifier.
Toute aide serait la bienvenue

Code : Tout sélectionner


<!--le fichier html -->
<form name="monForm" >
<div class="col-lg-12 well">
<div class="row">
<div id="surf" class="col-sm-6 form-group">
<label>Nom du departement</label>
<div style="margin-bottom: 25px" class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input type="text" name="Nom_departement" id="Nom_departement" placeholder="Donner un nom à votre formation" class="form-control">
</div>
 
 
<div class="col-lg-12 well">
<div class="col-sm-6 form-group">
<label>Date d'arrivé</label>
<div style="margin-bottom: 25px" class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input type="date" name="Date_Arrive" id="Date_Arrive" placeholder="Saisir la Date d'arrivé" class="form-control">
</div>
</div>
<div class="col-sm-6 form-group">
<label>Date de depart</label>
<div style="margin-bottom: 25px" class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input type="date" name="Date_depart" id="Date_depart" placeholder="Saisir la Date de depart" class="form-control">
</div>
</div>
 
 
 
<div class="col-sm-6 form-group">
<label>Description de l'emplacement</label>
<div style="margin-bottom: 25px" class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input type="text" name="Description" id="Description" placeholder="Saisir le nom de l'entreprise" class="form-control">
</div></div>
 
<div class="col-sm-6 form-group">
<label>Critique</label>
<div style="margin-bottom: 25px" class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input type="text" name="Critique" id="Critique" placeholder="Saisir le lieu" class="form-control">
</div>
</div>
 
</div>
 
</div>
<div class="col-sm-6 form-group">
<label>Ajouter un autre departement</label>
<div class="input-group-btn">
 
<button class="btn btn-success" onclick="addHtmlTableRow()" type="button">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
</button>
</div>
</div>
 
</div>
 
</div>
 
<div>
<table id="table" class = "table table-bordered">
<thead>
<tr>
<th>Nom du departement</th>
<th>Date d'arrivé</th>
<th>Date de depart</th>
<th>Description de l'emplacement</th>
<th>Critique</th>
 
</tr>
</thead>
 
<tbody>
 
</tbody>
 
</table>
 
</div>
<div class="input-group-btn">
<a <button type="button" class="btn btn-success" href="">Précédent</button></a>
 
<a <button type="button" class="btn btn-success" href="">Suivant</button></a>
 
 
</div> </form>
 
</div>
</div>
</section>
 
 
<!-- le javascript-->
<script>
function checkEmptyInput(){
var isEmpty=false,
Nom_departement=document.getElementById("Nom_departement").value,
Date_Arrive=document.getElementById("Date_Arrive").value,
Date_depart=document.getElementById("Date_depart").value
Description=document.getElementById("Description").value,
Critique=document.getElementById("Critique").value;
if(Nom_departement==""){
alert("Le Nom du departement SVP");
isEmpty=true;
}
else if(Date_Arrive==""){
alert("la Date d'arrivé SVP");
isEmpty=true;
}
else if(Date_depart==""){
alert("la Date de depart SVP");
isEmpty=true;
}
else if(Description==""){
alert("la Description de l'emplacement SVP");
isEmpty=true;
}
else if(Critique==""){
alert("Critiquez SVP");
isEmpty=true;
}
return isEmpty;
}
 
function addHtmlTableRow()
{
if(!checkEmptyInput()){
var table=document.getElementById("table"),
newRow=table.insertRow(table.length),
cell1=newRow.insertCell(0),
cell2=newRow.insertCell(1),
cell3=newRow.insertCell(2),
cell4=newRow.insertCell(3),
cell5=newRow.insertCell(4),
cell6=newRow.insertCell(5),
cell7=newRow.insertCell(6),
Nom_departement=document.getElementById("Nom_departement").value,
Date_Arrive=document.getElementById("Date_Arrive").value,
Date_depart=document.getElementById("Date_depart").value
Description=document.getElementById("Description").value,
Critique=document.getElementById("Critique").value;
cell1.innerHTML=Nom_departement;
cell2.innerHTML=Date_Arrive;
cell3.innerHTML=Date_depart;
cell4.innerHTML=Description;
cell5.innerHTML=Critique;
cell6.innerHTML='<button class="btn btn-success" onclick="removeRow(this)" type="button">Supprimer</button>';
cell7.innerHTML='<button class="btn btn-success" onclick="editRow(this)" type="button">Modifier</button>';
document.forms['monForm'].reset();
}
 
}
 
function removeRow(src)
{
 
var oRow = src.parentElement.parentElement;
document.all("table").deleteRow(oRow.rowIndex);
}
</script>


PM1er
Messages : 3
Enregistré le : 29 juin 2017, 16:42

Re: Modifier ligne d'une table en javascript

Message par PM1er » 07 nov. 2017, 11:23

Bonjour,


Dans ton script, il te manque la fonction "editRow" qui permet de modifier la ligne.

Ajoute le code ci-dessous :

Code : Tout sélectionner

function editRow(src)
{
   var oInput = src.parentElement.parentElement.getElementsByTagName("input");
   //S'il n'y a aucun champs "text", c'est que je ne suis pas en édition de la ligne, donc je vais la modifier.
   //Sinon, je suis déjà en édition, je dois donc valider le formulaire
   if(oInput.length==0) {
      modify(src);
   }
   else {
      validate(src);
   }
}
function modify(src) {
   var oTD = src.parentElement.parentElement.getElementsByTagName("td");
   //Pour les 5 premières colonnes, je change la ligne en champs.
   for(var i=0;i<5;i++) {
      var sType=(i>0 && i<3) ? "date" : "text";
      oTD[i].innerHTML="<input type=\""+sType+"\" value=\""+oTD[i].innerText+"\" />";
   }
}

function validate(src) {
   var oTD = src.parentElement.parentElement.getElementsByTagName("td");
   //Pour les 5 premières colonnes, je change les champs en texte.
   for(var i=0;i<5;i++) {
      oTD[i].innerHTML=oTD[i].childNodes[0].value;
   }
}
--------------------------
Oderint dum metuant
--------------------------

Répondre