Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Récupération checkbox PHP message erreur !!! Notice....

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
hx.jonathan
WRInaute discret
WRInaute discret

Inscrit le: 02 Mar 2005
Messages: 93

URL permanente de ce messagePosté le : Dim Avr 13, 2008 15:39    Sujet du message: Récupération checkbox PHP message erreur !!! Notice....

Bonjour à tous, Very Happy

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












?> Very Happy
 
hx.jonathan
UsagiYojimbo
WRInaute accro
WRInaute accro

Inscrit le: 23 Nov 2005
Messages: 2752
Localisation: Lyon, capitale des Gaules

URL permanente de ce messagePosté 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é ?
 
UsagiYojimbo Visiter le site web du posteur
hx.jonathan
WRInaute discret
WRInaute discret

Inscrit le: 02 Mar 2005
Messages: 93

URL permanente de ce messagePosté 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 ?
 
hx.jonathan
UsagiYojimbo
WRInaute accro
WRInaute accro

Inscrit le: 23 Nov 2005
Messages: 2752
Localisation: Lyon, capitale des Gaules

URL permanente de ce messagePosté 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);
}
?>
 
UsagiYojimbo Visiter le site web du posteur
hx.jonathan
WRInaute discret
WRInaute discret

Inscrit le: 02 Mar 2005
Messages: 93

URL permanente de ce messagePosté 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
 
hx.jonathan
UsagiYojimbo
WRInaute accro
WRInaute accro

Inscrit le: 23 Nov 2005
Messages: 2752
Localisation: Lyon, capitale des Gaules

URL permanente de ce messagePosté 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à
 
UsagiYojimbo Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort