conditions imbriquée

Mammouth du PHP | 19672 Messages

20 mai 2005, 15:39

Ce qui se conçoit bien s'énonce clairement
Et les mots pour le dire nous viennt aisément...
On est pas sortis de l'auberge ...

Avec juste ces tout petits bouts de code, il m'est difficile de comprendre quoique ce soit. Commence par le début: dans le formulaire, tu as ou non des valeurs par défaut dans les zones de saisies ou des champs cachés: La première chose à déterminer, c'est ce qui est exactement transmis si par exemple on ne touche à rien d'autre que le bouton [Submit] : Si il y a des valeurs, établis les règles de validation à partir ce ces valeurs ou des zones vides.

Quand tu auras établi ce schéma, à mon avis tu découvriras toi-même pourquoi ça bafouille.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 357 Messages

20 mai 2005, 16:00

bon oké
je comprend il était déja dure pour moi de comprendre le code ( code repris pour "amélioration" car il était incomplet).
si j'avais du le fair je ne l aurait pas fait comme ca.
ce que je vais faire c'est te mettre le début de mon code ainsi que le formulaire :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">


<head>
	<title>Demande de Rachat de credit</title>
	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
	<link href="RacCSS.css" rel="stylesheet" type="text/css" />
</head>


<body>
<?php

// -- Déclaration des variables -------------------------------
//

$form_ok = '1';

$_REQUEST['valid'] = isset($_REQUEST['valid']) ? $_REQUEST['valid'] : '';

$champs2 = array ('voiture','travaux','autre1','autre2','autre3','Projet','Montant');
$chs2 = array(
		'voiture' => ' Voiture',
		'travaux' => 'Travaux',
		'autre1' => ' Autre1',
		'autre2' => 'Autre2',
		'autre3' => 'Autre3',
		);

$chs = array(
		'Projet' => 'Non du projet',
		'Montant' => 'Montant du nouveau projet',
		'mail' => 'E Mail'
		);

$val = array();

$chps_manquant = '';

$error = '';

// Pour chaque champ, examine la valeur du formulaire  --------------
foreach ($champs2 as $champ)
{
	if(!isset($_REQUEST[$champ]) or $_REQUEST[$champ] == '')
	{
		$val[$champ] = '';

		if  (empty($val['voiture']) && empty($val['travaux']) && empty($val['Cred_autre1']) && empty($val['autre2'])
			 && empty($val['autre3']) )
			{
				$manquant=$chs2['voiture']." ou ".$chs2['travaux']." ou ".$chs2['autre1']." ou ".$chs2['autre2']
				." ou ".$chs2['autre3'];
				$form_ok='';
							
			}
		if (!empty($val['Projet']) && empty ($val['Montant']))
			{
				if (isset($manquant))
				{
					$manquant=$chs['Montant'].", ".$manquant;
					$form_ok='';
				}
				else 
				{
					$manquant1=$chs['Montant']; 
					$form_ok='';
				}
			}
	}
	else
	$val[$champ]=$_REQUEST[$champ];
}

if ($form_ok <> "1")
{

// le formulaire:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<fieldset>
	<legend>formulaire</legend>
	<table cellspacing="5" border="0">
		<tr></tr>
		<tr>
		<td class="label" >
                     <label for="voiture"> voiture&nbsp;:</label>
                </td> 
		<td class="input">
		     <input name="voiture" id="voiture" value="<?php echo $val['voiture']; ?>" tabindex="12" onfocus="this.className='focus';" onblur="this.className='normal';" />
		</td>
		</tr>
		<tr>
		<td class="label"><label for="travaux">travaux&nbsp;:</label></td> 
		<td class="input">
		      <input name="travaux" id="travaux" value="<?php echo $val['travaux']; ?>" tabindex="13" onfocus="this.className='focus';" onblur="this.className='normal';" />
		</td>
		</tr>
		<tr>
		<td class="label"><label for="autre1">Autres Cr&eacute;dits&nbsp;:</label></td> 
		<td class="input">
		        <input name="autre1" id="autre1" value="<?php echo $val['autre1']; ?>" tabindex="14" onfocus="this.className='focus';" onblur="this.className='normal';" />
		</td>
		</tr>
		<tr>
		<td class="label"><label for="autre2">&nbsp;</label></td> 
		<td class="input">
		      <input name="autre2" id="autre2" value="<?php echo $val['autre2']; ?>" tabindex="15" onfocus="this.className='focus';" onblur="this.className='normal';" />
		</td>
		</tr>
		<tr>
		<td class="label"><label for="autre3">&nbsp;</label></td> 
		<td class="input">
		<input name="autre3" id="autre3" value="<?php echo $val['autre3']; ?>" tabindex="16" onfocus="this.className='focus';" onblur="this.className='normal';" />
		</td>
		</tr>
	</table>
</fieldset>
<div id="piedForm"><input type="submit" name="submit" value="" id="valid" /></div>
</form>
}

if($form_ok=='1')

{
//bien rempli
}

voila le code un pe allégé ;) en espérant que ca puisse un pe t éclairer

Mammouth du PHP | 19672 Messages

20 mai 2005, 16:13

J'essaye de comprendre ce que tu veux faire et j,avoue que je perds pieds: où je me trompe fort, ou tu as l'art de te mettre tout seul dans une m**** sans nom jusqu'aux oreilles pour un truc qui me semble relativement simple à traiter. Là, je vois mieux pourquoi ton truc peut patiner, je capte pas trop le fouillis.

Pourrais-tu essaye de m'expliquer ce que tu veux faire si tous les champs sont vides et quoi dans les autres cas, on va te régler ton problème en deux coups de cuiller à pot sans s'emm***** avec des foreach et de l'abstraction: tu traites 5 champs, pas un formulaire de deux cent pages.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 357 Messages

20 mai 2005, 16:17

je t ai dit je devais reprendre le code de qq1 d'autre je n ai pas généré ce code. Car effectivement si j avais du le faire d'origine je ne serais surement pas passé comme ca ....
Je suis d'acc avec toi c un pe la m*** mais je me voyais mal tout reprendre ( ou la féniantise est un tres vilain défaut)
mais bon ...
merci d avoir essayer je vais tenter de me dépatouiller .
v voir avec le père de ce p*** code :p

PS si rien est rempli le message d'erreur s'affiche .
Si le premier champ est rempli ca marche
Si le premier champ n'est pas rempli et que les autres oui ca passe pas...
en gros c'est ca mon problème

Mammouth du PHP | 19672 Messages

20 mai 2005, 16:25

Bon, ben c'est pas compliqué, vire moi tout ce traitement exotique et reprends à zéro à partir du système de mon formulaire perso:
-1- vérifier que le bouton d'envoi a été cliqué
-2- récupérer les variables $_GET ou $_POST
-3- Traiter
-4- Si erreur, rafficher le formulaire ou autre traitement
-5- Si ok traitement normal
-6- Si bouton non cliqué affichage normal du formulaire.

Tu ira plus vite comme ça qu'à essayer de décrypter du code non commenté d'un autre.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 357 Messages

20 mai 2005, 17:25

c'est ce que j ai fini par faire ....
mais sauf que j ai po toucher son truc j ai fait a ma sauce avant
enfin comme pour un formulaire normale :lol:
et c'est bon ca marche.
bon ca mériterait de tout reprendre mais j ai pas le tps il faut que je termine ca dans moins d une heure donc c speed ....
Merci en tout cas de t'etre pris la tete avec moi ....
Voila une leçon que l on peu tirer de tout ca ...
CODER PROPREMENT ET SIMPLEMENT :
ca vous simplifie la vie
et surtout ca simplifie la vie de la personne qui aura a y retoucher ..

merci encore Cyrano

Mammouth du PHP | 19672 Messages

20 mai 2005, 19:09

Je suis certain que tu comprends d'autant mieux ma signature :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 357 Messages

23 mai 2005, 09:55

je l ai toujours dit :p
et comme ta citation
tout ce qui se conçoit bien s'énonce clairement
Et les mots pour le dire nous viennent aisément...
:lol: