Page 1 sur 1

Formulaire liste déroulante php

Posté : 07 janv. 2012, 22:19
par JBennn
Bonjour!

J'ai fait un formulaire mais je voudrai que quand je selectionne les 2 équipes et que j'envoie le formulaire, un match soit crée et un pronostic aussi.

Voici mon code :) :
<?php session_start();?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
        <title>FootClic</title>
    </head>

    <body>
       <header>
	   <div id="titre">
	   <img src="images/Ballon.gif" alt="" id="logo"/>
	   <h1> FootClic </h1></br>
	   <h3> Actus et Sondages sur le Football </h3>
	   </div>
		<nav>
		     <ul>
			 <li><a href="footclic.php">ACCUEIL</a></li>
			 <li><a href="debatsfootclic.php">ACTUS</a></li>
			 <li><a href="#">SONDAGES</a></li>
			 <?php
if (isset($_SESSION['pseudo']))
	echo "<li><a href=\"Pronos.php\">PRONOS</a></li><li><a href=\"decofootclic.php\">DECONNEXION</a></li>";

else
	echo '<li><a href="inscriptionfootclic.php">INSCRIPTION</a></li> <li><a href="connexionfootclic.php">CONNEXION</a></li>';


if (isset($_SESSION['pseudo']) && $_SESSION['pseudo'] == 'JBen')
	echo "<li><a href=\"Admin.php\">ADMIN</a></li>";

else
	echo '';

?>
			 </ul>
		</nav>
	    </header>
		<div id="banniere_image">
                
            </div>
		
		<section>
		
			
		<article>			
			
<form>
<label>Saisir la première équipe :</label>
<select>
<?php

$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); 
mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic"); 

$req= "select libelle from `equipe`";
$result = mysql_query($req);

while($val=mysql_fetch_array($result))
{
echo "<option value='equipe_domicile'>".$val["libelle"]."</option>";
}

mysql_close($db);

?>

</select>
<br/>
<label>Saisir la seconde équipe :</label>
<select>
<?php

$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); 
mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic"); 

$req= "select libelle from `equipe`";
$result = mysql_query($req);

while($val=mysql_fetch_array($result))
{
echo "<option value='equipe_exterieur'>".$val["libelle"]."</option>";
}

mysql_close($db);

?>


</select>
<br/>
<input type="submit" name="nom" value="Envoyer">

</form>

<?php			
if(isset($_POST['ajoutprono']) && !empty($_POST['equipe_domicile']) && !empty($_POST['equipe_exterieur'])) 
{ 
$equipe_domicile=$_POST["equipe_domicile"]; 
$equipe_exterieur=$_POST["equipe_exterieur"]; 

$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); 


mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic"); 

//Ajout Match
$MonSql="INSERT INTO match(equipe_domicile, equipe_exterieur) VALUES('$equipe_domicile','$equipe_exterieur')";
mysql_query($MonSql);
 
$id = mysql_insert_id();
//Ajout Prono
$MonSql1="INSERT INTO pronos(match_id) values ($id)";
mysql_query($MonSql1); 


// Fermeture de la connexion 
mysql_close($db);

echo("Votre prono a bien été enregistrée. <br />"); 
}
?>
			</article>
			
		   
		   
			
		</section>
		<footer>
	
	<div id="login">
		
		<?php if(isset($_SESSION['pseudo'])) echo $_SESSION['pseudo'];?>
		</div>
		</footer>
		</html>
Qui aurait une idée ? svp

Re: Formulaire liste déroulante php

Posté : 08 janv. 2012, 15:37
par Ryle
Euh... Une idée de quoi ? :?

Re: Formulaire liste déroulante php

Posté : 08 janv. 2012, 18:21
par JBennn
Salut !

J'arrive pas à créer un match et un pronostic en faites quand je sélectionne les 2 équipes .. j'ai essayé mais sa ne fonctionne pas.

Re: Formulaire liste déroulante php

Posté : 08 janv. 2012, 18:46
par Ryle
D'accord... mais qu'est ce que c'est sensé faire quand ça fonctionne ? qu'est ce que ça fait quand ça fonctionne pas ?

Et pour debugger : Quelles sont les valeurs que tu envoi ? Est-ce que le traitement passe bien dans les if() dans lesquels il devrait ? si non, pourquoi ?

Re: Formulaire liste déroulante php

Posté : 08 janv. 2012, 19:27
par JBennn
Alors en faites je choisis 2 équipes et quand je les envoie les deux équipes forment un match dans la Table MATCH(match_id, equipe_domicile, equipe_exterieur) et doivent aussi ajouter un prono dans la table PRONOS(id_pronostic, match_id, pronostic_1, pronostic_N, pronostic_2).

Code : Tout sélectionner

//Ajout Match $MonSql="INSERT INTO match(equipe_domicile, equipe_exterieur) VALUES('$equipe_domicile','$equipe_exterieur')"; mysql_query($MonSql); $id = mysql_insert_id(); //Ajout Prono $MonSql1="INSERT INTO pronos(match_id) values ($id)"; mysql_query($MonSql1);
Sauf que quand j'envoie le formulaire rien ne s'ajoute dans la BDD et je suis renvoyé toujours sur le formulaire..

Re: Formulaire liste déroulante php

Posté : 08 janv. 2012, 20:34
par Ryle
J'ai comme l'impression que tes balises html ne sont pas correctement exploitées.

Tes balises "select" par exemple n'ont pas d'attribut name. Difficile pour php de récupérer les valeurs des champs nommés equipe_domicile ou equipe_exterieur quand tes champs n'ont pas de nom :)

Ensuite tu testes la présence du champ "ajoutprono" les données envoyées par ton formulaire, sauf que celui-ci ne contient aucun champ qui porte ce nom. En général on fait référence au nom du bouton qui a envoyé le formulaire, mais dans ton cas, l'input submit s'appelle "nom".

Cela devrait te permettre d'entrer dans le if() pour insérer tes données en base :)

Ceci étant, toujours concernant tes balises html, les balises <header>, <footer>, <nav>, <article> ou <section> n'existent pas en html. Elles sont donc ignorées par le navigateur mais vont engendrer des erreurs en cas de la validation de ta page. Si ces balises ne sont là qu'à titre d'information utilise plutôt des commentaire html (<!-- .... -->) et si elles servent à la mise en page, utilise les attributs de balises existantes (<div id="article">...</div> ; <p class="section">...</p>)

Re: Formulaire liste déroulante php

Posté : 08 janv. 2012, 21:18
par JBennn
Je ne sais pas si j'ai bien compris ^^

Mais j'ai essayé sa :
<?php session_start();?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
        <title>FootClic</title>
    </head>

    <body>
       <header>
	   <div id="titre">
	   <img src="images/Ballon.gif" alt="" id="logo"/>
	   <h1> FootClic </h1></br>
	   <h3> Actus et Sondages sur le Football </h3>
	   </div>
		<nav>
		     <ul>
			 <li><a href="footclic.php">ACCUEIL</a></li>
			 <li><a href="debatsfootclic.php">ACTUS</a></li>
			 <li><a href="#">SONDAGES</a></li>
			 <?php
if (isset($_SESSION['pseudo']))
	echo "<li><a href=\"Pronos.php\">PRONOS</a></li><li><a href=\"decofootclic.php\">DECONNEXION</a></li>";

else
	echo '<li><a href="inscriptionfootclic.php">INSCRIPTION</a></li> <li><a href="connexionfootclic.php">CONNEXION</a></li>';


if (isset($_SESSION['pseudo']) && $_SESSION['pseudo'] == 'JBen')
	echo "<li><a href=\"Admin.php\">ADMIN</a></li>";

else
	echo '';

?>
			 </ul>
		</nav>
	    </header>
		<div id="banniere_image">
                
            </div>
		
		<section>
		
			
		<article>			
			
<form>
<label>Saisir la première équipe :</label>
<select name="match">
<?php

$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); 
mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic"); 

$req= "select libelle from `equipe`";
$result = mysql_query($req);

while($val=mysql_fetch_array($result))
{
echo "<option value='equipe_domicile' name='equipe_domicile'>".$val["libelle"]."</option>";
}

mysql_close($db);

?>

</select>
<br/>
<label>Saisir la seconde équipe :</label>
<select name="match">
<?php

$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); 
mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic"); 

$req= "select libelle from `equipe`";
$result = mysql_query($req);

while($val=mysql_fetch_array($result))
{
echo "<option value='equipe_exterieur' nom='equipe_exterieur'>".$val["libelle"]."</option>";
}

mysql_close($db);

?>


</select>
<br/>
<input type="submit" name="match" value="Envoyer">

</form>

<?php			
if(isset($_POST['match']) && !empty($_POST['equipe_domicile']) && !empty($_POST['equipe_exterieur'])) 
{ 
$equipe_domicile=$_POST["equipe_domicile"]; 
$equipe_exterieur=$_POST["equipe_exterieur"]; 

$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); 


mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic"); 

//Ajout Match
$MonSql="INSERT INTO match(equipe_domicile, equipe_exterieur) VALUES('$equipe_domicile','$equipe_exterieur')";
mysql_query($MonSql);
 
$id = mysql_insert_id();
//Ajout Prono
$MonSql1="INSERT INTO pronos(match_id) values ($id)";
mysql_query($MonSql1); 


// Fermeture de la connexion 
mysql_close($db);

echo("Votre prono a bien été enregistrée. <br />"); 
}
?>
			</article>
			
		   
		   
			
		</section>
		<footer>
	
	<div id="login">
		
		<?php if(isset($_SESSION['pseudo'])) echo $_SESSION['pseudo'];?>
		</div>
		</footer>
		</html>
		
	   
Sans succès lol

Re: Formulaire liste déroulante php

Posté : 08 janv. 2012, 21:25
par Ryle
C'est au niveau des select qu'il faut placer l'attribut name, pour nommer le champ... les options n'ont pas besoin de nom elles, elles ont des valeurs et c'est tout ce qui nous intéresse :)

En gros, php va récupérer chaque couple name/value envoyé par ton formulaire. Il faut donc que ton premier select s'appele "equipe_domicile", le deuxième "equipe_exterieur" et ça devrait déjà mieux fonctionner :)

Re: Formulaire liste déroulante php

Posté : 08 janv. 2012, 21:31
par JBennn
J'ai testé, ça ne fonctionne pas.

Bizarre..

Et quand je clique sur envoyer, le formulaire s'affiche toujours.