Bonjour a tous,
J'espère que vous serez indulgents concernant mon premier post sur ce forum, mais en l'ayant parcouru, je ne parviens toujours pas à mettre la main sur une piste qui pourrait me permettre de résoudre mon problème:
J'essaie en ce moment d'implémenter une interface permettant à un utilisateur de manipuler une base de données. Pour ce faire, je parcours le contenu de la table et je l'affiche sous la forme d'un tableau avec une colonne remplie de checkbox où je propose à l'utilisateur de sélectionner l'entrée qu'il voudrait supprimer.
Le code javascript associé:
Code Javascript :
<script type="text/javascript">
<!--
var idSpan = "txt_"; // masque des span (partie commune des id)
var idChk = "idchk_"; // masque des checkbox (partie commune des id)
var coul1 = "#0000FF"; // couleur si checkbox cochee
var coul2 = "#11AA44"; // couleur si checkbox pas cochee
function ChangeCouleur(chk)
{
var expr = /\d+$/gi; // expression reguliere pour extraction de l indice du checkbox
var indice = chk.id.match(expr); // on recupere l indice du chekbox
var sp = document.getElementById(idSpan+indice);
if (chk.checked)
sp.style.color = coul1;
else
sp.style.color = coul2;
}
function initchk()
{
var i;
var tabChk = document.getElementsByTagName("input");
var n = tabChk.length;
var expr = new RegExp(idChk, "gi");
for (i=0; i<n; i++)
{
if (tabChk[i].type.toLowerCase()=="checkbox" && expr.test(tabChk[i].id))
{
ChangeCouleur(tabChk[i]);
}
expr.test(""); // reinitialistion de l attribut lastIndex de la regexp (FF)
}
}
//-->
</script>
Et voici mon fichier php:
Code PHP :
<?php
// connexion à la base
$id = mysql_connect('localhost', 'root') or die('Erreur de connexion '.mysql_error());
// sélection de la base
$dbname = 'ans';
$db_selected = mysql_select_db($dbname,$id) or die('Erreur de selection '.mysql_error());
$select = 'SELECT reference, titre, theme, auteur, source FROM article';
$result = mysql_query($select,$id) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
// debut du tableau
[color=red] echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Reference</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Titre</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Theme</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Auteur</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Source</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Supprimer?</u></b></td>';
[/color]
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td align="center" bgcolor="#CCCCCC">'.$row["reference"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["titre"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["theme"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["auteur"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["source"].'</td>';
echo '<td align="center" bgcolor="#CCCCCC"><input id="check'.$row["reference"].'" type="checkbox" onclick="ChangeCouleur(this)" value="false" /></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
?>
Pour l'instant je cherche juste à modifier la couleur du champ sélectionné pour vérifier que l'évènement est bien passé.
Quelqu'un pourrait-il me mettre sur une piste svp? Je vois bien comment procéder pour une seule checkbox mais apparement j'aurai peut etre du proceder autrement pour construire mon tableau.
Excusez moi d'avance si mon code n'est pas beau, je débute ^^.
Merci pour vos réponses et à bientôt.