Fonction ARRAY code PHP

Résolu/Fermé
spirit_63 - 6 févr. 2011 à 13:38
 spirit_63 - 7 févr. 2011 à 16:31
Bonjour à tous,

Jai un soucis avec cette fonction, car lorsque l'on rempli le formulaire et qu'il affiche les champs manquants, la fonction "array" s'affiche si une des cases est cochée (pas très stylé) :-)
Ex : http://www.escaliers-style.fr/images/array.png

Mon code :

<?php
$color_font_warn="white";
$color_form_warn="#656565";
$list['f_10']=array("Sélectionnez","Maison"," Appartement"," Immeuble");
$list['f_11']=array("Sélectionnez","bois"," béton"," granito"," pierre"," métallique"," autre");
$list['f_13']=array("Sélectionnez","tournant"," balancé"," double quart tournant"," droit","hélicoïdal");
$list['f_14']=array("oui","non");
$list['f_17']=array("Intérieur","Extérieur");
if(isset($_POST['submit'])){
	$erreur="";
	// Nettoyage des entrées
	while(list($var,$val)=each($_POST)){
	if(!is_array($val)){
		$$var=strip_tags($val);
	}else{
		while(list($arvar,$arval)=each($val)){
				$$var[$arvar]=strip_tags($arval);
			}
		}
	}
	// Formatage des entrées
	$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö'\ -]", "", $f_1)));
	$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
	$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));
	$f_4=trim(eregi_replace("[^0-9+]", "", $f_4));
	$f_5=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_5)));
	$f_6=trim(eregi_replace("[^0-9\ +]", "", $f_6));
	$f_7=trim(eregi_replace("[^0-9\ +]", "", $f_7));
	$f_8=strip_tags(trim($f_8));
	$f_12=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_12)));
	$f_15=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_15)));
	$f_16=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_16)));
	// Verification des champs
	if(strlen($f_1)<2){
		$erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>";
		$errf_1=1;
	}
	if(strlen($f_2)<2){
		$erreur.="<li><span class='txterror'>Le champ « Prénom » est vide ou incomplet.</span>";
		$errf_2=1;
	}
	if(strlen($f_4)<2){
		$erreur.="<li><span class='txterror'>Le champ « Code postal » est vide ou incomplet.</span>";
		$errf_4=1;
	}
	if(strlen($f_5)<2){
		$erreur.="<li><span class='txterror'>Le champ « Ville - Dept » est vide ou incomplet.</span>";
		$errf_5=1;
	}
	if(strlen($f_8)<2){
		$erreur.="<li><span class='txterror'>Le champ « Adresse Email » est vide ou incomplet.</span>";
		$errf_8=1;
	}else{
		if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_'a-z{|}~]+'.
		'@'.
		'[-!#$%&\'*+\/0-9=?A-Z^_'a-z{|}~]+\.'.
		'[-!#$%&\'*+\./0-9=?A-Z^_'a-z{|}~]+$',
		$f_8)){
			$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
			$errf_8=1;
		}
	}
	if($f_10==0){
		$erreur.="<li><span class='txterror'>Le champ « Type » n'a pas été défini.</span>";
		$errf_10=1;
	}
	if($f_11==0){
		$erreur.="<li><span class='txterror'>Le champ « Escaliers » n'a pas été défini.</span>";
		$errf_11=1;
	}
	if($f_13==0){
		$erreur.="<li><span class='txterror'>Le champ « Escalier » n'a pas été défini.</span>";
		$errf_13=1;
	}
	if(!$f_14){
		$erreur.="<li><span class='txterror'>Le champ « Palier » requiert au moins une sélection.</span>";
		$errf_14=1;
	}
	if(strlen($f_16)<2){
		$erreur.="<li><span class='txterror'>Le champ « Nombre de marches » est vide ou incomplet.</span>";
		$errf_16=1;
	}
	if(strlen($f_17)<2){
		$erreur.="<li><span class='txterror'>Le champ « Emplacement » est vide ou incomplet.</span>";
		$errf_16=1;
	}
	if($erreur==""){
		// Création du message
		$titre="Demande de renseignement";
		$tete="From:*****\n";
		$corps.="Nom : ".$f_1." \n";
		$corps.="Prénom : ".$f_2."\n";
		$corps.="Adresse : ".$f_3."\n";
		$corps.="Code postal : ".$f_4."\n";
		$corps.="Ville - Dept : ".$f_5."\n";
		$corps.="Téléphone domicile : ".$f_6."\n";
		$corps.="Téléphone mobile : ".$f_7."\n";
		$corps.="Adresse Email : ".$f_8."\n";
		$corps.="Votre message : ".$f_9."\n";
		$corps.="Type : ".$list['f_10'][$f_10]."\n";
		$corps.="Escalier actuel : ".$list['f_11'][$f_11]."\n";
		$corps.="Si autre matière : ".$f_12."\n";
		$corps.="Escalier : ".$list['f_13'][$f_13]."\n";
		for($id=0; $id<count($list['f_14']); $id++){
			if($f_14[$id]==1){
				$corps.="Palier : ".$list['f_14'][$id]."\n";
			}
		}
		
		$corps.="Age escalier : ".$f_15."\n";
		$corps.="Nombre de marches : ".$f_16."\n"; 
		for($id=0; $id<count($list['f_17']); $id++){
			if($f_17[$id]==1){
				$corps.="Emplacement : ".$list['f_17'][$id]."\n";
			}
		}
		if(mail("*****", $titre, stripslashes($corps), $tete)){
			$ok_mail="true";
		}else{
			$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
		}
	}
}
?>


L'affichage pour les boutons:

<td align='right' width='30%'><span class='txtform'>Emplacement* :</span></td><td><?echo stripslashes($f_14);?>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_17']);$id++){
if($f_17[$id]==1){$ct="checked";}
print("<tr><td><input ".$ct." type='checkbox' name='f_17[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_17][$id]."</span></td></tr>");
unset($ct);
}?>
</table>
</td>
<tr><td align='right' width='30%'><span class='txtform'>Palier* :</span></td><td><?echo stripslashes($f_14);?>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_14']);$id++){
if($f_14[$id]==1){$ct="checked";}
print("<tr><td><input ".$ct." type='checkbox' name='f_14[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_14][$id]."</span></td></tr>");
unset($ct);
}?>
</table>
</td></tr>


Si vous pouviez m'aider pour modifier mon code pour éviter ce style d'affichage....
Merci d'avance pour votre aide


A voir également:

2 réponses

Utilisateur anonyme
7 févr. 2011 à 08:40
Bonjour,

J'ai vu une coquille ici :

print("<tr><td><input ".$ct." type='checkbox' name='f_17[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_17][$id]."</span>

à remplacer par

print("<tr><td><input ".$ct." type='checkbox' name='f_17[$id]' value='1' border='0'></td><td><span class='txtform'>".$list['f_17'][$id]."</span>

Manquait des '
0
Merci pour votre aide


Mais apparemment (votre réponse m'a fait revenir sur le code),

Et il semblerai que c'était la fonction 1 qui causait le soucis d'affichage:
Avant :

<?php
$color_font_warn="white";
$color_form_warn="#656565";
$list['f_10']=array("Sélectionnez","Maison"," Appartement"," Immeuble");
$list['f_11']=array("Sélectionnez","bois"," béton"," granito"," pierre"," métallique"," autre");
$list['f_13']=array("Sélectionnez","tournant"," balancé"," double quart tournant"," droit","hélicoïdal");
$list['f_14']=array("oui","non");
$list['f_17']=array("Intérieur","Extérieur");
if(isset($_POST['submit'])){


Apres:


$list['f_10']=array("Sélectionnez","Maison"," Appartement"," Immeuble");
$list['f_11']=array("Sélectionnez","bois"," béton"," granito"," pierre"," métallique"," autre");
$list['f_13']=array("Sélectionnez","tournant"," balancé"," double quart tournant"," droit","hélicoïdal");
$list['f_14']=array("oui","non");

$list['f_18']=array("oui","non");

$list['f_17']=array("Intérieur","Extérieur");
if(isset($_POST['submit'])){


J'en ai rajouter 1 et laissé l'autre ['f_14'] sans appel et ca fonctionne... ???? C'est à rien n'y comprendre.

Merci encore pour votre message
0