Pb boucle dans tableau à 2 dimensions
Posté : 17 avr. 2006, 12:33
Bonjour à tous,
Je vous soumet de nouveau mon script modifié. Je bute sur la récupération des différents arguments ajoutés dans un tableau à 2 dimensions par mes fonctions de création de formulaire. Le tableau s'appelle donc $tableau et contient pour chaque champ ajouté un tableau qui porte le nom du champ créé (ici 'age_capitaine' et 'adresse') avec 2 arguments (le type et le critère obligatoire ou non)
Je souhaite donc récupérer dans ma fonction valid_fields() les différents champs. En fonction du type, j'effectue un traitement et en fonction de $needed, je suis censé créer un tableau d'erreur si le champ est vide.
Pour l'instant, j'ai un souci d'affichage dans la boucle foreach de cette fonction puisque j'ai le résultat suivant :
Alors que je devrais avoir :
Que se passe t-il ???
Merci d'avance de votre aide.
Voici le code :
Je vous soumet de nouveau mon script modifié. Je bute sur la récupération des différents arguments ajoutés dans un tableau à 2 dimensions par mes fonctions de création de formulaire. Le tableau s'appelle donc $tableau et contient pour chaque champ ajouté un tableau qui porte le nom du champ créé (ici 'age_capitaine' et 'adresse') avec 2 arguments (le type et le critère obligatoire ou non)
Je souhaite donc récupérer dans ma fonction valid_fields() les différents champs. En fonction du type, j'effectue un traitement et en fonction de $needed, je suis censé créer un tableau d'erreur si le champ est vide.
Pour l'instant, j'ai un souci d'affichage dans la boucle foreach de cette fonction puisque j'ai le résultat suivant :
Code : Tout sélectionner
age_capitaine
age_capitaine
le champ age_capitaine n est pas obligatoire
adresse
adresse
le champ adresse n est pas obligatoire
Code : Tout sélectionner
age_capitaine
age_capitaine
le champ age_capitaine n est pas obligatoire
adresse
adresse
le champ adresse est obligatoire
Merci d'avance de votre aide.
Voici le code :
<? session_start(); ?>
<?php
function FormCreate($class, $action, $formname='Form', $method='POST', $encryption='') {
echo '<form method="' . $method . '" action="' . $action . '" name="' . $formname . '" class="' . $class . '">' . "\n";
}
function FormEnd() {
echo '</form>';
}
function FormInput ($label, $name, $size, $maxlenght, $needed) {
global $tableau;
$tableau[$name] = array ($needed, 'text');
$result_forminput = '<label for="' . $name . '">' . $label . '</label>' . "\n" . '<input type="text" id="' . $name;
$result_forminput .= '" name="' . $name . '" value="';
$result_forminput .= isset($_POST[$name])?$_POST[$name]:NULL;
$result_forminput .= '" size="' . $size . '" maxlenght="' . $maxlenght . '" />';
$result_forminput .= ($needed=='1')?"*":NULL;
$result_forminput .= "<br />\n";
echo $result_forminput;
}
function FormSubmit($namesubmit, $labelsubmit) {
$result_formsubmit = '<input type="submit" class="checkform" ';
$result_formsubmit .= 'name="' . $namesubmit . '" value="' . $labelsubmit . '" />';
echo $result_formsubmit;
}
function valid_fields($tableau)
{
foreach ($tableau as $sous_tableau=>$valeur)
{
print_r('<br />' . $sous_tableau . '<br />');
// $sous_tableau contient le nom du champ
print $sous_tableau;
list($type, $needed) = $valeur;
// $type contient le type du champ et $needed contient 1 ou 0 selon qu'il est requis ou non
//print $type . '<br />';
//print $needed . '<br />';
if ($needed == 1)
{
echo 'le champ ' . $sous_tableau . ' est obligatoire <br />';
}
else
{
echo 'le champ ' . $sous_tableau . ' n est pas obligatoire <br />';
}
}
}
<?
$tableau='';
// Début du script
$action=(isset($_POST['envoi']))?$_POST['envoi'] : Null;
if($action) {
$tableau = $_SESSION['tab'];
valid_fields($tableau);
}
?>
<html>
<head>
</head><body>
<?php
FormCreate('css', 'formulaire3.php', 'Formulaire');
FormInput('Age du capitaine : ', 'age_capitaine', '50', '10', 0);
FormInput('Adresse : ', 'adresse', '30', '10', 1);
$_SESSION['tab'] = $tableau;
FormSubmit('envoi', 'Valider');
FormEnd();
?>
</body>
</html>