Boucler tant qu'il y des variable post

Boucler tant qu'il y des variable post - PHP - Programmation

Marsh Posté le 22-07-2008 à 09:42:52    

Bonjour a tous.
 
j'ai besoin de faire une boucle dynamique sans savoir a l'avance la limite de passage. Je m'explique j'ai dans une pages des checkbox créer dynamiquement et coché de la meme manière (creation grace à des données Mysql).
Ensuite lors de la validation j'envoie en post le contenu du formulaire et donc mes checkbox coché ou pas.
j'ai besoin donc de faire une boucle sur les checkbox afin de recuperer ceux qui sont coché
 
voici une partie du code avec les checkbox

Code :
  1. // Bon bah on récupere toutes les qualifs de l'intervenant ... en une seule requete
  2.  $sqlQualifInterv = "SELECT `inttoqua_qualification_id`  FROM `intervtoqualif` WHERE `inttoqua_intervenants_id` =".$intervenants_number;
  3.  $reqQualifInterv = mysql_query($sqlQualifInterv);
  4.  $arrayQualifInterv = array();
  5.  $i = 0;
  6.  while($resQualifInterv = mysql_fetch_array($reqQualifInterv)){
  7.   $arrayQualifInterv[$i]=$resQualifInterv['inttoqua_qualification_id'];
  8.   $i++;
  9.  }
  10.  // Boucle sur le tableau resultat pour affichage de l'arbre de checkbox coché ou pas en fonction des qualification de l'intervenant
  11.  foreach($ret_tree as $cat){
  12.   $indent = '';
  13.   for($i=0;$i<$cat['indent'];$i++){
  14.    $indent .= '&nbsp;&nbsp;&nbsp;';
  15.   }
  16.   $checked = '';
  17.   if (in_array($cat['id'], $arrayQualifInterv)) {
  18.    $checked = "checked";
  19.   }
  20.    echo $indent.'<input type="checkbox" '.$checked.' name="cbx_qualif_'.$cat['id'].'" id="cbx_qualif_'.$cat['id'].'" onclick="toggleTree(this);"><input type="hidden" name="hidQualif_'.$cat['id'].'" id="hidQualif_'.$cat['id'].'" value="'.$cat['id_parent'].'">'.$cat['nom'].'<br />';
  21.    print "\n";
  22.  }


 
on y vois les checkbox a la fin du code l'id est dynamique et pas forcement de 1  à X cela depend des id recupérer dans la bdd.
 
une idée siou plait ?

Reply

Marsh Posté le 22-07-2008 à 09:42:52   

Reply

Marsh Posté le 22-07-2008 à 10:07:48    

Bon j'ai chercher un petit et j'ai fait une boucle FOREACH
voici ce que cela donne

Code :
  1. // Boucle sur les variable poste pour récupérer les checkbox coché et on ajoute les valeurs en BDD
  2. foreach ($_POST as $cle => $valeur) {
  3.  // si la variable poste commence par cbx_qualif_ alors on commence le traitement
  4.  if (substr($cle,0,11) == 'cbx_qualif_') {
  5.   //echo "{$cle} => {$valeur}<br>";
  6.   // récupération de l'id de la qualification
  7.   $idQualif = substr($cle,11,strlen($cle));
  8.   //ajout en BDD
  9.   $AddReq_qualif = "INSERT INTO `intervtoqualif` (inttoqua_intervenants_id,inttoqua_qualification_id,inttoqua_created_date,inttoqua_modified_user) VALUE ('".$ACSIid."','".$idQualif."','".$created_date."','".$modified_utilisateur."')";
  10.   $res_qualif = mysql_query($AddReq_qualif);
  11.  }
  12. }
 

je teste ^^

 

EDIT : Sa marche désolé du dérangement, quoique cela peut aider certain


Message édité par hyptnos le 22-07-2008 à 10:11:36
Reply

Marsh Posté le 22-07-2008 à 10:36:28    

Et si $modified_utilisateur = "l'enfoiré" ?? :D

Reply

Marsh Posté le 22-07-2008 à 10:40:45    

?????????????????
remarque tres constructive :s

Reply

Marsh Posté le 22-07-2008 à 10:58:59    

Oui car tu vas avoir une erreur sql (sauf si tu as les smagic_quotes activées).

 

Faut utiliser mysql_real_escape_string et déactiver les magic quotes.
http://www.phpfrance.com/tutoriaux [...] gic-quotes


Message édité par Alisteroid le 22-07-2008 à 11:02:14
Reply

Marsh Posté le 22-07-2008 à 11:05:53    

Bonne remarque
mais le compte utilisateur son créer automatiquement via un algorythme bien définit aucun risque qu'il y est un caractère d'échappement
C'est pas un site internet , c'est un portail applicatif privé

Reply

Marsh Posté le 22-07-2008 à 11:07:23    

oki :jap: :D,

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed