Récuperer des variables dans un tableau géré en PHP via un b

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récuperer des variables dans un tableau géré en PHP via un b

Re: Récuperer des variables dans un tableau géré en PHP via

par aikiox » 10 avr. 2012, 23:19

Bonsoir,

J'ai réussi a me débrouiller... Pas très jolie.
La page "creationevenement" permet juste de mettre le nom, date, lieu et nombre de participant et affiche les répliques disponibles que l'on a déjà renseignées dans un stock au préalable. J'affiche cela juste avec la modification du nombre possible car il se peut pour X raison qu'une arme soit en moins ou en plus.
Ensuite, il va intégrer dans une table spéciale, l'ID de l'évènement associé à chaque ligne d'arme.
Voici le code :

Code : Tout sélectionner

<script type="text/javascript" src="../integration/js/jquery-latest.js"></script> <script type="text/javascript" src="../integration/js/jquery.validate.js"></script> <style type="text/css"> label.error { float: none; color: red; padding-left: .5em; vertical-align: top; } p { clear: both; } .submit { margin-left: 12em; } </style> <script> $(document).ready(function(){ $("#commentForm").validate(); }); </script> <div id="rightcontent"> <div class="postcontent"> <div class="padleft"> <form class="cmxform" id="commentForm" method="post" action="..\validevenement"> <fieldset> <p><label for="nom">Nom de l’évènement : *</label><input type="text" name="nomEvenement" size="25" class="required" minlength="2" /> </p> <label for="date">Date de l'évènement (jj.mm.aaaa) : *</label><input type="text" name="dateEvenement" minlength="10" class="required dateDE" value="<? echo date("d.m.Y" )?>"/> <label for="lieu">Lieu de l'évènement : *</label><input type="text" name="lieuEvenement" size="25" class="required" minlength="2" /> <label for="nbmax">Nombre maximum de participant : *</label><input type="text" name="totalEvenement" size="1" class="required" maxlength="2" class="number"/> <table align="Center"> <CAPTION><B>Réplique pour l'Evenement</B></CAPTION> <tr> <td align="Center"><b>Model</b></td> <td align="Center"><b>Description</b></td> <td align="Center"><b>Image</b></td> <td align="Center"><b>Quantité</b></td> </tr> <? $i = 0; include("./integration/fonctions.php"); connecte(); $sql="SELECT * FROM abc_replique"; $resultat=mysql_query($sql) or die("Problème dans la requête $sql !"); while($tranche=mysql_fetch_array($resultat)) { extract($tranche); echo "<tr align='CENTER'>"; echo "<td>".$modelReplique."</td>"; echo "<td>".$descriptionReplique."</td>"; echo "<td>".$urlReplique."</td>"; echo "<td><input type='text' name='quantiteReplique".++$i."' value='".$quantiteReplique."' /></td>"; echo "<td><input type='hidden' name='i' value='".$i."' /></td>"; echo "</tr>"; } ?> </table> <label for="valide"></label><input type="submit" value="Valider" class="submit" name="Valider"/> </fieldset> </form>
Validation :

Code : Tout sélectionner

<?php // connection à la base include("./integration/fonctions.php"); connecte(); // compte le nombre de ligne de la table ABC_REPLIQUE pour verifiquer le nombre de ligne soit exacte avec le nombre de variable i sur le input quantiteReplique $counter=mysql_query("SELECT COUNT(*) NBR_ENTREE FROM abc_replique"); $row=mysql_fetch_object($counter); echo "La table comporte ".$row->NBR_ENTREE." enregistrement(s)."; echo "<br />"; // création de la variable i qui correspond au nombre total de input $i=$_POST['i']; echo $i; // Si le nombre total de input egal au nombre total de ligne de la table ABC_REPLIQUE alors on y va if ( $i = $row->NBR_ENTREE) { // création de la variable j qui va incrementer notre POST quantiteReplique qui correspond au nombre modifié de replique sur la plage précedente $j=0; // Requet de la table ABC_REPLIQUE pour extraire le modele, description et urlReplique $sql="SELECT * FROM abc_replique"; $resultat=mysql_query($sql) or die("Problème dans la requête $sql !"); while($tranche=mysql_fetch_array($resultat)) { extract($tranche); // requet pour lier l'evenement au arme disponible pour cette evenement. L'id evenement doit etre récuperé pour lancer la requet. $sql2="INSERT INTO abc_eventReplique VALUES('1','$modelReplique','{$_POST['quantiteReplique'.++$j]}','$descriptionReplique','$urlReplique')"; $resultat2=mysql_query($sql2) or ("Problème dans la requête '$sql'."); //resultat de la requet. Si oui Félicitation, sinon ERROR } if($resultat2==1 ) { echo "<H1>La réplique a été rajouté dans le stock !</H1><br /><br /><br /><br /><br /><br /><br /><br />"; } else { echo "ERROR"; } } else { echo "nok"; } ?>
Je n'ai pas eu le temps de le mettre en forme...
Bonne soirée

Re: Récuperer des variables dans un tableau géré en PHP via

par aikiox » 10 avr. 2012, 18:23

Hahah... Je me prend tellement la tête que je ne fais plus attention...
Désolé...
Avez-vous une solution pour mes questions au dessus ?

Cordialement

Re: Récuperer des variables dans un tableau géré en PHP via

par AB » 10 avr. 2012, 18:13

Au passage, c'est quoi ces
echo "
";
Si tu veux insérer un retour ligne c'est
echo '<br />';

Re: Récuperer des variables dans un tableau géré en PHP via

par aikiox » 10 avr. 2012, 18:02

Bonjour,

Merci pour ta réponse, j'ai pu avancer :)
Je n'avais pas copié l'ensemble de mon code.. Désolé... J'ai bien les balises "<form>.
J'ai rajouté le champs caché idReplique (clef primaire).
J'ai rajouté un champs input sur l'ensemble de mes lignes.

Voici le code :

Code : Tout sélectionner

<form class="cmxform" id="commentForm" method="post" action="..\validevenement"> <fieldset> <p><label for="nom">Nom de l’évènement : *</label><input type="text" name="nomEvenement" size="25" class="required" minlength="2" /><br /><br /></p> <label for="date">Date de l'évènement (jj.mm.aaaa) : *</label><input type="text" name="dateEvenement" minlength="10" class="required dateDE" value="<? echo date("d.m.Y" )?>"/><br /><br /> <label for="lieu">Lieu de l'évènement : *</label><input type="text" name="lieuEvenement" size="25" class="required" minlength="2" /><br /><br /> <label for="nbmax">Nombre maximum de participant : *</label><input type="text" name="totalEvenement" size="1" class="required" maxlength="2" class="number"/> <table align="Center"> <CAPTION><B>Réplique pour l'Evenement</B></CAPTION> <tr> <td align="Center"><b></b></td> <td align="Center"><b>Model</b></td> <td align="Center"><b>Description</b></td> <td align="Center"><b>Image</b></td> <td align="Center"><b>Quantité</b></td> </tr> <? include("./integration/fonctions.php"); connecte(); $sql="SELECT * FROM abc_replique"; $resultat=mysql_query($sql) or die("Problème dans la requête $sql !"); while($tranche=mysql_fetch_array($resultat)) { extract($tranche); echo "<tr align='CENTER'>"; echo "<td><INPUT TYPE='HIDDEN' NAME='nbidReplique[]' VALUE='".$tranche[idReplique]."' /></td>"; echo "<td><INPUT TYPE='text' NAME='nbmodelReplique[]' VALUE='".$tranche[modelReplique]."' /></td>"; echo "<td><INPUT TYPE='text' NAME='nbdescriptionReplique[]' VALUE='".$tranche[descriptionReplique]."' /></td>"; echo "<td><INPUT TYPE='text' NAME='nburlReplique[]' VALUE='".$tranche[urlReplique]."' /></td>"; echo "<td><input type='text' name='nbReplique[]' value='".$tranche[quantiteReplique]."' /></td>"; echo "</tr>"; } ?> </table> <label for="valide"></label><input type="submit" value="Valider" class="submit" name="Valider"/><br /><br /> </fieldset> </form>
Plusieurs problèmes :


1. J'aurais préferé afficher que du texte et non un champ input même verrouillé. N'est-il pas possible de mettre dans des variables le texte présent entre "<td>XX</td>" sans que ça soit un input ?
2. J'arrive a recuperer les variables mais je suis obliger de faire une recherche ligne par ligne (voir code ci dessous)

Code : Tout sélectionner

<?php $array=$_POST['nbReplique']; foreach($array as $quantiteReplique) { echo $quantiteReplique."-"; } echo "<br />"; $array=$_POST['nbidReplique']; foreach($array as $idReplique) { echo $idReplique."-"; } echo "<br />"; $array=$_POST['nbmodelReplique']; foreach($array as $modelReplique) { echo $modelReplique."-"; } echo "<br />"; $array=$_POST['nbdescriptionReplique']; foreach($array as $descriptionReplique) { echo $descriptionReplique."-"; } echo "<br />"; $array=$_POST['nburlReplique']; foreach($array as $urlReplique) { echo $urlReplique."-"; } ?>
Résultat :
1-5-1-
17-18-19-
M16-AK-Maeva-
M16-AK 47-Super Maeva-
upload/004.jpg-upload/test47.png-upload/add.png-


Merci encore de ton aide.

Re: Récuperer des variables dans un tableau géré en PHP via

par moogli » 10 avr. 2012, 10:45

Salut,

La balise form est obligatoire ainsi que l'attribut name dans les input.
Pour que ton script fonctionne utilise la notation tableau pour nommer les champs (name="truc[]" par exemple).
Il faut aussi que tu garde une référence sur la ligne affichée (en général la clef primaire est le mieux) que tu affiche à côté du champ text dans un input caché.


@+

Récuperer des variables dans un tableau géré en PHP via un b

par aikiox » 09 avr. 2012, 23:53

Bonjour,
J'aurais aimé savoir comment récupérer les variables de mon tableau qui, le contenu, a été généré par une boucle While ?

Voici le code de la génération de mon tableau :
Je tiens juste à préciser que seul le champ "Quantité" peut-être modifié.

Code : Tout sélectionner

<table align="Center"> <CAPTION><B>Réplique pour l'Evenement</B></CAPTION> <tr> <td align="Center"><b>Model</b></td> <td align="Center"><b>Description</b></td> <td align="Center"><b>Image</b></td> <td align="Center"><b>Quantité</b></td> </tr> <? include("./integration/fonctions.php"); connecte(); $sql="SELECT * FROM abc_replique"; $resultat=mysql_query($sql) or die("Problème dans la requête $sql !"); while($tranche=mysql_fetch_array($resultat)) { extract($tranche); echo "<tr align='CENTER'>"; echo "<td>".$modelReplique."</td>"; echo "<td>".$descriptionReplique."</td>"; echo "<td>".$urlReplique."</td>"; echo "<td><input type='text' value="$quantiteReplique." /></td>"; echo "</tr>"; } ?> </table>

Cordialement