Récupérer la valeur d'un champ dynamique

maguidi -  
 maguidi -
Bonjour,
J'ai un problème pour insérer la valeur de mes champs dynamiques dans ma base de données
J'ai un formulaire avec un champ par défaut et des champs dynamiques dynamique que l'utilisateur peut ajouter avec un bouton ajout
Alors j'ai fais ce code pour insérer les valeurs dans ma base de données
foreach($_POST as $cle=>$value)
{
if(substr($cle,0,7)=="article")
{
$array_article[]=$value;
}
}
for ($i=0; $i<sizeof($array_article); $i++)
{
$select_artticle = mysql_query("SELECT KArticles, Designations FROM articles WHERE
Designations='$array_article[$i]'");
$res_article = mysql_fetch_array($select_artticle);
$num_article = $res_article['KArticles'];
$select_sortie = mysql_query("INSERT INTO sorties (FKArticles, DateSorties) VALUES('$num_article',
now())");
}


Mais quand je regarde ma base de données j constate que la valeur du champ dynamique n'est pas insérée. Alors pour voir si j'arrive à récupérer les valeurs des champs dynamiques
et j'ai obtenu ça
Array ( [article1] => A3 [article] => Array ( [0] => A2 ) ) (ce qui est en gras est la valeur du champ dynamique)
Là je récupère bien la valeur du champ dynamique mais sous forme de tableau. Comme j'ai fait
foreach($_POST as $cle=>$value) l
es données du champs dynamique se retrouve encore dans un autre tableau
et après quand je fais
if(substr($cle,0,7)=="article")
{
$array_article[]=$value;
}

article1 est la clé et sa valeur est A3
article2 est aussi une clé mais pour sa valeur c'est juste le Array qui est récupérer alors que moi j'ai besoin de ce qui est dans le array de article.
C'est pour ça que dans ma boucle for quand je fais un echo $array_article[$i] ça m'affiche
A3 Array .
Voila mon problème mais je sais pas comment y remédier, si quelqu'un peu m'aider je sais plus quoi faire.

2 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
he bien tu vas au niveau suivant de ton array

$array_article[$i][0] par exemple et la tu aura la valeur
0
maguidi
 
merci alain ça marche
mais comment faire si j'ai plusieurs valeurs je ne purrais pas à chaque fois faire $array_article[$i][0],
$array_article[$i][1], $array_article[$i][2],...
0
Alain_42 Messages postés 5413 Statut Membre 894
 
si tu as plusieurs valeurs tu imbrique une autre boucle foreach sur $value

foreach($_POST as $cle=>$value){
	if(sizeof($value)>0){
		foreach($$value as $cle2=>$value2){
			//et la tu récupères
		
		}
	}

}
0
maguidi
 
J'ai fais ça

foreach($_POST as $cle=>$value)
{
if(sizeof($value)>0)
{
foreach($value as $cle2=>$value2)
{
if(substr($cle2,0,7)=="article")
{
$array_article[]=$value2;
}
}
}
else
{
$array_article[]=$value;
}
}
mais ça m'affiche ce message d'erreur :
Warning: Invalid argument supplied for foreach() in C:\Program Files\EasyPHP 2.0b1\www\Stocks\sortie_stock_bd.php on line 24
Je comprend pas trop bien ton code.
0