Tom's Guide > Forum > Programmation > [Résolu][PHP]Formulaire avec liste déroulante ne veut pas s'envoyer

[Résolu][PHP]Formulaire avec liste déroulante ne veut pas s'envoyer

Forum Programmation : [Résolu][PHP]Formulaire avec liste déroulante ne veut pas s'envoyer

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,

Je sais d'avance que j'aurais peu ou pas de réponse à mon problème mais j'essaie quand même... pour les plus courageux !

J'ai fait un script pour un ami et moi, histoire de mettre en ligne nos quotes marrantes juste pour nous deux..

Mon script marche, mais j'aimerais l'optimiser, dans rediger_quotes.php il y a un formulaire donc avec Auteur, Catégorie, Contenu...

Seulement voilà, le "catégorie" j'aimerais lui mettre une liste déroulante (voilà mon optimisation) et on a juste à cliquer sur une catégorie... j'ai fait ça mais quand je remplis tous les champs, je choisis ma catégorie et bah rien ne se passe quand j'ai fait "envoyer" ! J'ai refléchis mais j'ai pas trouvé de solution donc je m'en remets à vous.

Je vous mets les contenus importants des pages rediger_tutos.php et liste_tutos.php..

rediger_tutos.php :

______________________________________________________
<?php
mysql_connect("localhost", "root", "" );
mysql_select_db("ma_base" );

if (isset($_GET['modifier_quote'])) // Si on demande de modifier une quote
{
// On récupère les infos de la correspondante
$retour = mysql_query('SELECT * FROM quote WHERE id=' . $_GET['modifier_quote']);
$donnees = mysql_fetch_array($retour);

// On place le titre et le contenu dans des variables simples
$titre = $donnees['auteur'];
$categorie = $donnees['categorie'];
$contenu = $donnees['contenu'];
$id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige une nouvelle quote
{
// Les variables $auteur et $contenu sont vides, puisque c'est une nouvelle news
$auteur = '';
$categorie = '';
$contenu = '';
$id_tuto = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>

<form action="liste_quotes.php" method="post">
<p>Auteur : <input type="text" size="30" name="auteur" value="<?php echo $auteur; ?>" /></p>


<form method="post" action="liste_quotes.php">
<p>
<label>
Catégorie ?<br />
<select name="categorie" value="<?php echo $categorie; ?>" />
<option value="sms">SMS</option>
<option value="cs">CS</option>
<option value="gwen">Gwen</option>
<option value="idn">IDN</option>
<option value="tom">t0m</option>
<option value="maluko">MaLuKo</option>
<option value="syl">Syl</option>
<option value="msn">MSN</option>
<option value="autre">Autre</option>
</select>
</label>
</p>
</form>



<p>
Contenu :<br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br />

<input type="hidden" name="id_quote" value="<?php echo $id_quote; ?>" />
<input type="submit" value="Envoyer" />
</p>
</form>
______________________________________________________
liste_tutos.php :

______________________________________________________
<?php
mysql_connect("localhost", "root", "" );
mysql_select_db("ma_base" );

//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une quote ?
//-----------------------------------------------------

if (isset($_POST['auteur']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['auteur']);
$categorie = addslashes($_POST['categorie']);
$contenu = addslashes($_POST['contenu']);
// On vérifie si c'est une modification de quote ou pas
if ($_POST['id_quote'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO quote VALUES('', '" . $auteur . "', '" . $categorie . "','" . $contenu . "', '" . time() . "')" );
}
else
{
// C'est une modification, on met juste à jour le titre et le contenu
mysql_query("UPDATE quote SET auteur='" . $auteur . "', categorie='" . $categorie ."', contenu='" . $contenu . "' WHERE id=" . $_POST['id_quote']);
}
}


//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une quote ?
//--------------------------------------------------------

if (isset($_GET['supprimer_quote'])) // Si on demande de supprimer une quote
{
// Alors on supprime la news correspondante
mysql_query('DELETE FROM quote WHERE id=' . $_GET['supprimer_quote']);
}
?>

<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Catégorie</th>
<th>Auteur</th>
<th>Date</th>
</tr>

<?php
$retour = mysql_query('SELECT * FROM quote ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les quotes
{
?>

<tr>
<td><?php echo '<a href="rediger_quotes.php?modifier_quote=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_quotes.php?supprimer_quote=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['categorie']); ?></td>
<td><?php echo stripslashes($donnees['auteur']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>

<?php
} // Fin de la boucle qui liste les quotes
?>
______________________________________________________

Merci pour les éventuelles personnes qui prendront soin d'apporter leur aide. :)


Message édité par Desolation le 01-03-2007 à 22:36:51
------------------------------

 

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

pourquoi tu crée 2 <form>?
pour le select, l'attribut value ne sert à rien, il faut mettre un attribut selected à la catégorie par défaut

Répondre à coca25

Ouep, je viens à l'instant de trouver l'erreur... j'ai enlevé le second <form> et ça fonctionne ! Merci quand même d'avoir pris de ton temps. ;)

------------------------------

 

Répondre à Desolation

Tom's Guide > Forum > Programmation > [Résolu][PHP]Formulaire avec liste déroulante ne veut pas s'envoyer
Aller à :

Il y a 535 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens