|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
hx.jonathan WRInaute discret

Inscrit le: 02 Mar 2005 Messages: 93
|
Posté le : Dim Avr 13, 2008 15:39 Sujet du message: Récupération checkbox PHP message erreur !!! Notice.... |
|
|
Bonjour à tous,
Cela fait un bout de temps que je ne suis plus venu ici. Mais c'est avec plaisir que je reviens pour que vous me filiez un petit coup de pouce.
Voici le problème.
Je récupère les valeurs de mes checkbox sur une page en php. Le traitement fait ce que je veux mais j'ai le message d'erreur suivant :
Notice: Uninitialized string offset: 1 in D:\SEERYX\Try\admin\update_reportage.php on line 24
Voici mon code :
-------------------
| Code: |
<?php
include_once '../fonctions.php';
connexion_DB('abscence');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="secure.css" />
</head>
<body>
<?php
if(isset($_POST['choix']))// SI une case au moins a été cochée alors ...
{
foreach($_POST['choix'] AS $cle=>$value)
echo $cle, ' -> ', $value, '<br />', "\n";
for($i=0; $i<$_POST['cpt'];$i++){
$sql = "UPDATE images SET Statut_Image_Report_01 ='coché' WHERE ID_Image = '".$value[$i]."'";
mysql_query($sql)or die('Erreur SQL !'.$sql.''.mysql_error());
echo "<br/>".$sql;
}
?>
<a href="admin.php?page=11">Retour à la gestion des images</a>
<?php
}
else
{
header("Location:admin.php?page=11");
}?> |
Merci de votre aide.
John
?>  |
|
| |
|
 |
UsagiYojimbo WRInaute accro

Inscrit le: 23 Nov 2005 Messages: 2752 Localisation: Lyon, capitale des Gaules
|
Posté le : Dim Avr 13, 2008 16:09 Sujet du message: Récupération checkbox PHP message erreur !!! Notice.... |
|
|
| Tu peux nous mettre le code html du formulaire incriminé ? |
|
| |
|
 |
hx.jonathan WRInaute discret

Inscrit le: 02 Mar 2005 Messages: 93
|
Posté le : Dim Avr 13, 2008 17:17 Sujet du message: Récupération checkbox PHP message erreur !!! Notice.... |
|
|
Salut,
Ne tiens pas compte du script que j'ai mis en haut.
Voici ce que je veux faire:
J'aurais un formulaire html dans lequel je ferai une boucle pour afficher mes enregistrements et créer pour chaque enregistrement une checkbox que je pourrais cocher et décocher afin d'enregistrer le statut coché ou décoché dans ma base de données. Et ce afin de pouvoir récupérer le statut de mes checkbox.
J'aurais une autre page qui me servirais d'UPDATE sql de ma table.
Mais je ne sais pas comment procéder pour que chaque checkbox soit liée à un enregistrement de ma table.
Aurais-tu une idée stp ? |
|
| |
|
 |
UsagiYojimbo WRInaute accro

Inscrit le: 23 Nov 2005 Messages: 2752 Localisation: Lyon, capitale des Gaules
|
Posté le : Dim Avr 13, 2008 17:54 Sujet du message: Récupération checkbox PHP message erreur !!! Notice.... |
|
|
Un truc simple : les nommer en fonction de leur id.
Ta boucle sql qui afficherait les checkbox ferait un truc du genre :
| Code: |
<?
$sql = "SELECT id,valeur FROM matable";
$res = mysql_query($sql);
while ($row = mysql_fetch_array($res))
{
?>
<input type="checkbox" name="chk_<?=$row['id']?>" id="chk_<?=$row['id']?>" value="1" />
<?
}
?>
|
Et dans le code de traitement tu fais quelque chose du genre :
| Code: |
<?
$sql = "SELECT id,valeur FROM matable";
$res = mysql_query($sql);
while ($row = mysql_fetch_array($res))
{
$value = 'pascoché';
if (isset($_POST['chk_'.$row['id']]) && ($_POST['chk_'.$row['id']] =='1'))
{
$value = 'coché';
}
$sql = "UPDATE matable SET statut='".$value."' WHERE id=".$row['id'];
mysql_query($sql);
}
?>
|
|
|
| |
|
 |
hx.jonathan WRInaute discret

Inscrit le: 02 Mar 2005 Messages: 93
|
Posté le : Dim Avr 13, 2008 18:52 Sujet du message: Récupération checkbox PHP message erreur !!! Notice.... |
|
|
Merci de ta réponse. Mais je ne comprends pas bien le principe ?
Pourrais-tu développer stp ?
John |
|
| |
|
 |
UsagiYojimbo WRInaute accro

Inscrit le: 23 Nov 2005 Messages: 2752 Localisation: Lyon, capitale des Gaules
|
Posté le : Dim Avr 13, 2008 19:07 Sujet du message: Récupération checkbox PHP message erreur !!! Notice.... |
|
|
Bein ca m'a l'air pourtant pas compliqué :
1) tu génères la liste de tes input à partir de tes enregistrements, en les préfixant (ou suffixant) avec les id.
Ce qui fait par exemple que l'input lié à ton enregistrement d'id 3 aura comme name et id chk_3 (chk étant une chaine arbitraire, qui permet de s'assurer que les champs générés dynamiquement ne génèreront pas de conflits avec des champs existants).
2) Lors de la validation du formulaire, tu exécutés à nouveau la requête qui t'as servis à créer les champs.
Si un champ posté correspond à la chaîne chk_id, alors la case est cochée, sinon elle ne l'est pas (les champ input de type checkbox ne sont pas postés si la case n'est pas cochée).
Voilà |
|
| |
|
 |
| |
|
|