Str_split un tableau $_post

darksteir -  
 darksteir -
Bonjour,
je fais un questionaire avec des bouton radio, cependent l'ors de la valisation je dois indiquer la réponse choisi et si elle est bonne ou non, donc le tableau $_post ne contien pas des clées qui se suivent, par exemple les clé peuvent être 02,07,10. je fais donc un foreach de $_post qui sort les cles en string et l'envoi dans un nouveau tableau avec des clé qui se suivent (0,1,2,3), cependent le retour ne marche pas, voici le code et le résultat.

foreach( $_POST as $key=>$value ) {
  	echo$key; echo"</br>";
    	$elements=str_split($key,2);
}
  
print_r($elements);


voici le résultat:

02
06
10
Array ( [0] => 10 )

le problème c'est que le tableau contient seulement un des éléments et je n'arrive pas a lui envoyer les autres (02,06)
A voir également:

1 réponse

ReDLoG
 
Bonsoir,

Il ne faut pas travailler sur les clés du tableau mais sur leur valeur :
foreach($_POST as $key=>$value) {
  	echo $value."</br>\n";
    	$elements=str_split($value,2);
}
print_r($elements);
0
Darksteir
 
ca ne fonctionne pas ca me sort cela

faux
vrai
vrai
Array ( [0] => vr [1] => ai )
0
ReDLoG
 
J'ai testé comme ceci :
<?php
$elts = array('0104050810'); // En remplacement de tes valeurs $_POST pour le test
$elements= array();

foreach($elts as $key=>$value) {
	echo $value."<br />\n";
	$elements=str_split($value,2);
}
echo "<p>L'array elements contient :<br />\n";
print_r($elements)."</p>\n";
echo "<p>L'array elts contient :<br />\n";
print_r($elts)."</p>\n";
?>

Affiche à l'écran :
0104050810

L'array elements contient :
Array ([0] => 01 [1] => 04 [2] => 05 [3] => 08 [4] => 10)

L'array elts contient :
Array ([0] => 0104050810)

A toi de comprendre le cheminement et où tu fais erreur...
0
JooS Messages postés 2705 Statut Membre 228
 
Salut,

C'est normale qu'il n'affiche que le dernier élément de ton questionnaire, puisque a chaque itération tu écrase l'ancien tableau ... il faut plutôt insérer au lieu d'écraser ...

Essaye avec array_push.

$elements = array();    
foreach($_POST as $key=>$value) {    
      echo $key; 
      echo '<br />'; 

      array_push($elements, $key);    
} 


Sinon, pour faire plus simple !
Dans ton code html, tu dois nommer les éléments du questionnaire comme ceci !

<input type="text" name="quest[nom]">    
<input type="text" name="quest[prenom]">

Et aprés, dans ton code PHP, tu aura tout les éléments de ton questionnaire bien rangé dans un tableau nommé "quest" !

foreach($_POST['quest'] AS $champs=>$elem)     
      echo $champs . ' : ' . $elem;
0
Darksteir
 
je vais essayer avec le push, la deuxième méthode je ne crois pas qu'elle fonctionera,car je vais chercher mes éléments depuis un xml donc le nombre de mes input dépend de ce qui est dans le xml
0
JooS Messages postés 2705 Statut Membre 228
 
ça revient au même, ce que tu va faire avec array_push pourra être fait automatiquement par PHP.

Sinon, je ne comprend pas vraiment ce que t'essaye de réaliser.
0