J'ai un tableau html qui est généré par PHP et des données dans une base de données. Ce que je veux faire, c'est avoir un bouton dans la dernière cellule de chaque ligne qui dit "modifier" et lorsque vous cliquez sur ce bouton, le texte dans les autres cellules devient des zones de texte ou d'autres types de champs de saisie afin que vous puissiez les modifier et ensuite appuyer sur "soumettre", ce qui enverrait ce formulaire pour être mis à jour dans la base de données. Le code que j'ai actuellement pour générer le tableau est le suivant :
<table style="width:100%; " class = "table table-striped table-bordered table-hover">
<tr>
<th>Name</th>
<th>Status</th>
<th>Description</th>
<?php
if($_SESSION['editGroup'] != 0){
echo "<th>Edit</th>";
}
?>
</tr>
<?php
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$checkQuery = "SELECT userGiven, userStatus, userDesc FROM user_Status WHERE organization = 'myOrg' ORDER BY userGiven ASC";
$prepared = $dbh->prepare($checkQuery);
$prepared->execute();
$data = $prepared->fetchAll(PDO::FETCH_ASSOC);
foreach($data as $row){
echo "<tr>";
if($_SESSION['editGroup'] != 0){
echo "<td width='20%'>" . $row['userGiven'] . "</td><td width='10%'>" . $row['userStatus'] . "</td><td width='70%'>" . $row['userDesc'] . "</td><td width='10%'><button type='button' class='btn btn-info'>Edit</button></td>";
}else{
echo "<td width='20%'>" . $row['userGiven'] . "</td><td width='15%'>" . $row['userStatus'] . "</td><td width='75%'>" . $row['userDesc'] . "</td>";
}
echo "</tr>";
}
?>
</table>
Ce que j'essaie de faire est de changer la cellule avec userStatus en un champ déroulant avec la valeur actuelle comme valeur de départ et l'autre valeur in/out comme autre valeur à sélectionner.
Je veux également transformer le userDesc en textarea et je pense savoir comment faire tout cela mais je rencontre un problème conceptuel lorsque j'essaie de l'appliquer au tableau dynamique.
Ce que je pensais, c'est que je pourrais utiliser jquery/javascript pour obtenir le innerhtml de la variable span qui pourrait entourer ces deux cellules et ensuite changer le html des différents champs de saisie contenant le texte actuel permettant à l'utilisateur qui les édite de changer ces valeurs.
Mais comment faire pour ce genre de problème ? J'aurais besoin d'événements onClick pour tous les boutons et je ne saurais pas combien de boutons il y aurait, c'est basé sur le nombre de lignes dans le tableau.
Cela entraînerait des centaines de lignes de code redondantes. Je suppose donc qu'il doit y avoir un meilleur moyen. Quelqu'un connaît-il un moyen d'accomplir cela ? J'ai trouvé ceci : http://stackoverflow.com/questions/16202723/how-to-edit-data-onclick
ce qui est proche de ce que je veux, mais cela semble être des valeurs statiques alors que je veux pouvoir le faire pour n'importe quelle ligne du tableau.