PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 08-08-2015 11:29:00

owenn59
Membre
Inscription : 08-08-2015
Messages : 7

Envoie données Tableau dynamique avec 2 liste dynamique

Bonjour à tous, alors voilà je débute en PHP et malgré avoir mangé pas mal de "cours" sur le net j'ai un peu de mal avec l'envoi des données....
Alors voici mon code coté "récolte des données" :



<?php
      $host = "xxx.mysql.db";
      $user = "xxxx";
      $pass = "xxxx";
      $bdd = "xxxx";
       // connexion
         $cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
         $db = mysql_select_db("$bdd") or die("Impossible de se connecter");
            if (mysql_connect ($host,$user,$pass))
            {
               echo 'Connexion réussie'; echo '<br>';
            }
            else
            {
               echo 'Connexion impossible...'.mysql_error(); echo '<br>';
            }
           
            $requete2="SELECT id_eta,etat FROM `ny6dh_man_etat`";
            $result2=mysql_query($requete2);
            while ($ligne=mysql_fetch_array($result2))
            {
               $chaine .= '<OPTION  NAME= "id_etat" VALUE="'.$ligne["id_eta"].'">'.$ligne["etat"].'</OPTION>';
            }

            $requete2="SELECT id_grp,groupe FROM `ny6dh_man_groupe`";
            $result2=mysql_query($requete2);
            while ($ligne=mysql_fetch_array($result2))
            {
               $chaine2 .= '<OPTION NAME= "id_groupe" VALUE="'.$ligne["id_grp"].'">'.$ligne["groupe"].'</OPTION>';
            }
      ?>
                             
                </div><!-- /.box-header -->
                <div class="box-body">
                  <table id="example1" class="table table-bordered table-striped">
<thead>
                      <tr>
                        <th>Genre</th>
                        <th>Nom</th>
                        <th>Prénom</th>
                        <th>Age</th>
                        <th>Ville</th>
                        <th>Enregistré</th>
                        <th>Groupe</th>                       
                      </tr>
                    </thead> <tbody>                 
                   
                   <?php

$sql = "SELECT id,id_etat,genre,nom,prenom,id_eta,etat,age,tel1,ville,mod_souhaite1,id_grp,groupe,id_groupe
FROM `ny6dh_man_eleve` A, `ny6dh_man_groupe` B , `ny6dh_man_etat` C
WHERE A.id_etat = 0
AND A.mod_souhaite1 = 1
AND B.id_grp = A.id_groupe
AND A.id_etat = C.id_eta";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
   
$id .= '. $row["id"].';

echo " <tr><td>". $row["genre"]."</td>
            <td>". $row["nom"]."</td>
            <td>". $row["prenom"]."</td>
            <td>". $row["age"]."</td>
            <td>". $row["ville"]."</td>
            <td><form method='post' action='traitement.php'><select name='".$id."' onChange='this.form.submit()'  class='form-control'>". $chaine."</select></td>             
            <td><select name='".$row["id"]."' onChange='this.form.submit()'  class='form-control'>".$chaine2."</select></form></td>
            </tr> ";                   


    }
} else {
    echo "0 results";
}
$conn->close();
?>

Donc comme on peut voir il s'agit d'un tableau dynamique avec deux menus déroulant dynamique et sans bouton valider, lorsque l'on selectionne un choix l'action vers le fichier traitement.php s'effectue....

le fichier traitement.php est comme ceci (je n'effectue pour ce premier test que l'envoi de l'enregistrement) :
<?php
// on se connecte à notre base
$base = mysql_connect ('xxxx.mysql.db', 'xxxx', 'xxxx');
mysql_select_db ('testdevffrtest', $base) ;
?>
<html>
<head>

<title>Modification de l'adresse d'un propriétaire</title>
</head>
<body>
<?php
// on teste si les variables du formulaire sont déclarées
if (isset($_POST["id_etat"]) && isset($_POST["id"])) {



    // lancement de la requête
    $sql = 'UPDATE ny6dh_man_eleve SET id_etat="'.$_POST["id_etat"].'" WHERE id="'.$_POST["id"].'"';

    // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

    // on ferme la connexion à la base
    mysql_close();

    // un petit message permettant de se rendre compte de la modification effectuée
    echo 'La nouvelle adresse de '.$_POST["id"].' est : '.$_POST["id_etat"];
}
else {
    echo 'Les variables du formulaire ne sont pas déclarées';
}
?>
</body>
</html>


Le problème est que rien ne se passe....et franchement je suis vraiment perdu car il s'agirait d'un pb d'écriture et je n'ai aucune idée d'où cela peut provenir.....merci de votre aide

Dernière modification par owenn59 (08-08-2015 11:30:03)

Hors ligne

#2 08-08-2015 13:38:39

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : Envoie données Tableau dynamique avec 2 liste dynamique

if (isset($_POST["id_etat"]) && isset($_POST["id"])) {

tu ne rentres jamais dans ce if, vu que tu n'as qu'un seul champ dans ton formulaire, ce champ ne peut pas avoir 2 noms différents.
ensuite, je doute que ce champ s'appelle "id" ou "id_etat" vu que dans ton code tu y mets la valeur du champ id de la table.

echo $_POST;
dans ta page traitement pour voir ce que tu reçois selon la liste déroulante à la sélection modifiée.

Hors ligne

#3 08-08-2015 13:50:15

owenn59
Membre
Inscription : 08-08-2015
Messages : 7

Re : Envoie données Tableau dynamique avec 2 liste dynamique

Merci pour cette réponse, lorsque je fais cet echo post il me mets "Array"
Pour le if (isset($_POST["id_etat"]) && isset($_POST["id"])) {
je l'ai mis mais ne sais pas si c'est juste....ce que je souhaite c'est récupérer l'id dans la ligne et la valeur du champ...comment faire alors?

Hors ligne

#4 08-08-2015 14:12:55

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : Envoie données Tableau dynamique avec 2 liste dynamique

plutôt :
print_r($_POST);

remplace dans un premier temps ton if par
if(1){

Hors ligne

#5 08-08-2015 15:03:44

owenn59
Membre
Inscription : 08-08-2015
Messages : 7

Re : Envoie données Tableau dynamique avec 2 liste dynamique

Donc quand je met print_r($_POST); , il me mets ceci :

Array ( [__$row] => Array ( ["id"] => 1 ) [218] => 0 )

Par contre pour "remplace dans un premier temps ton if par
if(1){"

je remets la totalité du code?

Hors ligne

#6 10-08-2015 13:01:42

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Envoie données Tableau dynamique avec 2 liste dynamique

Saluton,

Tu devrais vérifier dans le source HTML de ton formulaire comment sont nommés tes <select> parce que le résultat du print_r($_POST) est assez curieux, [_$row] ne me dit rien qui vaille.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 12-08-2015 19:03:12

owenn59
Membre
Inscription : 08-08-2015
Messages : 7

Re : Envoie données Tableau dynamique avec 2 liste dynamique

Merci mais j'ai beau y jetter un oeil je ne vois pas où cela cloche....

Hors ligne

Pied de page des forums