Php:les if imbriqué

Fermé
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 - 4 mai 2009 à 14:14
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 - 4 mai 2009 à 15:40
Bonjour,
j'ai fait ce code et j'ai rencontrai un problème :
<?php //connexion a la base
?>
<html>
<head>
</head>
<body>  
        le formulaire 1
          <form method="post" action="typeform.php">
      <input type="radio" name="tope" value="Q C M"/> Q C M <br>
               <input type="radio" name="tope" value="Q C U"/> Q C U <br>
               <input type="radio" name="tope" value="Q ouvert"/> Q Ouvert
<br><br> 
       <input type="submit" value="ok" name="ok">
    </form>
<?php  $type = '';  if(isset($_POST['tope']))      { $type = $_POST['tope'] ; }
     if( $type == "Q ouvert" or $type == "Q C U" )
{    ?>le formulaire 2
    <form method="post" action="typeform.php" >
      -----un formulaire en html-----
    <input type="submit" name="creation1" value="valider" />
	</form>
 <?php  } 
    if(isset($_POST['creation1']))
    {    
            $sqltyp = "SELECT id_typ FROM type WHERE typ = '$type' " ;
	echo "soumission de la requete $sqltyp<br>";
	$reqtyp = mysql_query($sqltyp,$connexion) or die("selection impossible : $sqltyp".mysql_error());
		
	$resltyp = mysql_fetch_assoc($reqtyp);
	if( $resltyp !== FALSE )
	{$tp = $resltyp['id_typ'] ;  }
	else { echo 'ce type néxiste pas ';  } 
       //suivie des autres requete sql 

    }
elseif($type == "Q C M" )
{ ?>   le formulaire 3
      <form method="post" action="typeform.php" >
         ----------un formulaire en html-----------
       <input type="submit" name="creation2" value="valider" />
	</form>
<?php 	} 
        if(isset($_POST['creation2']))
	  {      $sqltyp = "SELECT id_typ FROM type WHERE typ = '$type' " ;
	echo "soumission de la requete $sqltyp<br>";
	$reqtyp = mysql_query($sqltyp,$connexion) or die("selection impossible : $sqltyp".mysql_error());
		
	$resltyp = mysql_fetch_assoc($reqtyp);
	if( $resltyp !== FALSE )
	{$tp = $resltyp['id_typ'] ;  }
	else { echo 'ce type néxiste pas ';  } 
       //suivie des autres requete sql 
   }
?>
</body>
</html>


les deux boucle if(isset($_POST['creation1'])) et if(isset($_POST['creation2']))
sont excuté selon le choix mon choix si je choisis Q C M c'est la boucle if(isse($_POST['creation2'])) qui est exécuté mais voila le message d'erreur :

soumission de la requete SELECT id_typ FROM type WHERE typ = ''
ce type néxiste pas

Notice: Undefined variable: sujet in C:\Program Files\EasyPHP 2.0b1\home\typeform.php on line 546

comment faire pour que la variable $sujet sera définit ?

je vous remerciez d'avance
A voir également:

2 réponses

freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 162
4 mai 2009 à 15:20
Bonjour.

Au début de ton code, tu l'a bien instanciée:
$type = '';  
if(isset($_POST['tope'])){
     $type = $_POST['tope'] ;
}


Mais en effet, si tu ne remplis pas le contrôle nommé tope dans ton formulaire qui appelle la page, bah sa remplira pas la variable $type.
Je comprends pas tout ce que tu a voulu faire, mais visiblement, tu a l'intention de garder la valeur de $type au dela de deux appels à la page: utilise donc dans ce cas les sessions (session_start() en début de page, puis $_SESSION['cequetuveu']='lavaleurquetuveut'; en sachant que tu peut faire des isset($_SESSION['cequetuveut'] et autre). Ou encore, mets un champs caché dans ton formulaire (
<input type="hidden" name="tope" value='$type'>
pour pouvoir réenvoyer le type via le formulaire sans l'afficher. )


0
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 2
4 mai 2009 à 15:40
aaah ok
je vais essai avec un champ caché
car je connais pas les session(je suis qu"une débutante en php)

merci bcp pour ton aide et je vais revenir pour vous dire si sa marche
0