Formulaires a 2 entrées au choix

Résolu
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 1 avril 2006 à 23:35
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 3 avril 2006 à 18:36
bonsoir, j'ai un souci avec mon formulaire
le fait est que mon formulaire se présente de la façon suivante :
formulaire.php
========
<form action="trait.php" method="post">
liste déroulante1 / checkbox1 / champ texte1
liste déroulante2 / checkbox2 / champ texte2
liste déroulante3 / checkbox3 / champ texte3
</form>

- les listes déroulantes se remplissent en fonction de la base de donnée (donc déjà existant)
- le checkbox sert a rendre inaccessible la liste deroulante et accessible le champ texte
(a l aide de javascript avec les fonctions disabled true ou false selon les cas)
- le champ texte sert a donner une nouvelle valeur a la liste déroulante (donc inexistant dans la base de donnée)

trait.php
====
voici le code de réception:

if (empty($_POST['nivtext'])&&isset($_POST['nivtext'])) {$niveau $_POST['niveau'];}else{$niveau $_POST['nivtext'];};
if (empty($_POST['mattext'])&&isset($_POST['mattext'])) {$matiere $_POST['matiere'];}else{$matiere $_POST['mattext'];};
if (empty($_POST['parttext'])&&isset($_POST['parttext'])) {$partie $_POST['partie'];}else{$partie $_POST['parttext'];};

l'erreur est en fait ke si je rempli uniquement les champs textes sa fonctionne mais si je remplis le champ texte1 et 3 et la liste déroulante2 est sélectionnée
il me met erreur sur liste déroulante2
je ne vois pas comment je dois rectifier et donnée ke je ne maitrise pas encore
les isset() et les empty()
pour dire je ne sais plus a koi sa correspond exactement si ce n'est ke c une façon de tester les champs

3 réponses

sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
2 avril 2006 à 19:49
if (empty($_POST['nivtext'])&&isset($_POST['nivtext']))



la c'est bizarre un peu

tu testes si nivtext est vide ET si nivtext est alimenté ??

non ? je ferais l'un ou l'autre




if (isset($_POST['nivtext']))

ou


if (!empty($_POST['nivtext']))
3
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
2 avril 2006 à 19:58
Voila merci le probleme etait la :
le fait etait ke je ne me souvenai plus a koi correspondait le empty() et le isset()

if (empty($_POST['niveau'])&&isset($_POST['nivtext']))
{
$niveau = $_POST['nivtext'];
}else{
$niveau = $_POST['niveau'];
};
if (empty($_POST['matiere'])&&isset($_POST['mattext']))
{
$matiere = $_POST['mattext'];
}else{
$matiere = $_POST['matiere'];
};
if (empty($_POST['partie'])&&isset($_POST['parttext']))
{
$partie = $_POST['parttext'];
}else{
$partie = $_POST['partie'];
};
0
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
3 avril 2006 à 18:36
apres cela j ai un pb avec mon code j 'aimerai faire un test pour voir si l'ajout désiré est deja existant ou non dans les tables en question mais sa me mets une erreur o niveau de la requete :

<?
if (empty($_POST['niveau'])&&isset($_POST['nivtext']))
{
$niveau = $_POST['nivtext'];
}else{
$niveau = $_POST['niveau'];
};

//rajouter la nouvelle classe
if (isset($_POST['nivtext']))
{
//a ce niveau la je voudrais verifié ke "$_POST['nivtext']" n'existe pas dans la table
//si il existe alors afficher existe déjà !!

$sql = "INSERT INTO classe_docs (lib_classe) VALUES('$niveau')";
mysql_query($sql) or die ('Erreur SQL ! '.$sql.'
'.mysql_error());
//on réassocie les vraies valeurs aux variables avant ajout
$idniv = mysql_insert_id();

$sql = "INSERT INTO cours_docs (num_classe) VALUES('$idniv')";
mysql_query($sql) or die ('Erreur SQL ! '.$sql.'
'.mysql_error());

echo "Enregistrement réussi";
}


?>

g simplifier le code ici parce que l'action se répetera 3 fois car il y a 3 listes déroulantes dont chacune occupe une table différente et l'ensemble des données remplis une 4ème table
0
Rejoignez-nous