Formulaire qui créé un formulaire

Répondre
Patochewie
le 14/06/2004 à 16:24
Patochewie
Bonjour je cherche à créer une page qui génére des formulaires simples, avec une question , deux choix, puis suivant le choix, une nouvelle question et ainsi de suite.
Le formulaire ressemble donc à un arbre binaire simple dont on dévoile que les branches désirées.
C'est bon je me fais comprendre pour l'instant?
Alors sur mon formulaire de création je voudrais juste donner les questions, les choix correspondants, et le lien choix->question suivante. Quelqu'un aurait'il une petite idée? N'hésiter pas à me demander si je me suis mal expliqué.
moogli
le 14/06/2004 à 17:08
moogli
salut,
a mon avis il faut que ton formulaire et le traitement soit sur la meme page, avec une variable qui contient le numero de la question et une le numero de la question.
<form name="formu1" method="post" action="cettepg.php">
ta question :
reponse 1 <input type="radio" name="rep" value="rep1">
reponse2 <input type="radio" name="rep" value="rep2">
<input type="submit" value="questin suivante">
</form>
<?php
//le code de vérif
if ($_POST['rep']="blabla") { ton action }
else { autre action}
?>

Tu va me dire po dynamique tout cela, maintenant si tu a une table qui contient les questions
(tab_question => id (auto_increment) et question (text) et une table qui contient les reponses avec la kestion a poser suivant la reponse
id_question | reponse(text) | id_question_suivante

ensuite tu utilise une variable qui contient le numero de la question suivante a poser

(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1464]ce lien[/lien])

Voila je comment je vois la chose, m'enfin c'est loin d'être parfait. tu peut enregistrer les question deja poser puis les réafficher la
reponse (dans un fichier une variable de session ..)

pour remplire tes tables il faut absolument que id_question de la table de reponse soit le même id dans la table des questions
donc pour enregister une question a partir d'une page
1/tu enregistre la question
$sql ='INSERT INTO tab_question VALUES('','question')';
$req=mysql_query($sql) or die ('erreur sql'.mysql_error());
2/ tu récupère l'id de ton enregistrement
$id_kestion=mysql_insert_id($req);
3/tu inser la reponse vace les id correspondant
$sql = 'INSERT INTO tab_reponse VALUES("'.$id_kestion.'","reponse","id_suivant");
mysql_query($req) or die ('erreur sql'.mysql_error());

J'espère que je suis pa trop compliqué smiley que tu as compris. il ne te rest plus qu'a mettre en form et améliorer
@+
Il en faut peu pour être heureux !!!!!
Patochewie
le 14/06/2004 à 19:15
Patochewie
Merci pour cette réponse hyper détaillée, mais justement je ne veux pas creer de table.
Mon formulaire sert juste à creer un autre .php avec fopen et fwrite pour écrire les données.
Je voyais ça comme une sorte d'application si tu veux, qui te demande le nombre de champs, leur nom et créé automatiquement un formulaire.
J'ai plusieurs formulaires du même type à faire et c'est pour ça que je voulais faire un truc comme ça.
<form name="form1" method=method="post" action="cettepg.php">
combien de champs? <input type="text" name="nbchamps">
<?
echo '<form name="form2" method="post" action="creationpage.php">';

for($i=0;$i<$nbchamps;$i++){
echo 'Question:<input type="text" name="question'.$i.'">';
echo 'reponse 1 <input type="radio" name="rep'.$i.'1">';
echo 'reponse 2 <input type="radio" name="rep'.$i.'2">';
}
?>
<input type="submit" value="questin suivante">
</form>


Et après je récupère toutes les données, mais la question que j'affiche depend de la réponse précédente, comme un espèce d'arbre binaire, le problème étant que toutes les branches de cet arbre n'ont pas la même longueur, et que je ne sais pas comment faire correspondre les branches avec les noeuds.
En esperant avoir été plus claire.
Patochewie
le 15/06/2004 à 09:10
Patochewie
En fait j'aimerai arriver à une page comme ça:
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1467]ce lien[/lien])


Ce truc est plein de fautes mais c'est surtout au niveau de l'algo de ce programme que je me pose des questions. Est ce qu'un truc de ce genre à des chances de marcher?????
Patochewie
le 15/06/2004 à 10:55
Patochewie
il me reste un gros problème:
$ecriture .='<?';
for($i=0;$i<$nbint;$i++) {
$chxa='$chx'.$i.'_a';
$intemp='$Intitule'.$i;
$ecriture .='$Intitule'.$i.'='.$intemp.';';
$ecriture .='$choix'.$i.'_a='.$chxa.';';
}

Comment affecter la valeur de chx0_a à choix0_a, il se contente de m'écrire, dans mon php où j'écris, $choix0_a=$chx0_a;
alors que je voudrai la valeur de $chx0_a.
Je ne sais pas comment gere ce truc pour écrire directement cette valeur dans le code créer.
moogli
le 15/06/2004 à 16:20
moogli
quand tu affect $chxa tu fait $chxa='$chx'.$i.'_a';
tu as donc une chaine de caractère dans $chxa, ce qui fait qu'a ta derniere ligne tu met une chaine de caractère dans $choix0_a
$ecriture .='$choix'.$i.'_a='.$chxa.';';=> $chxa contient : $chx0_a (par exemple) en tant que chaine et non valeur.

tu devrait regarder le cour sur les variables dynamiques
Je pense que sa devrait t'interreser
@+
Il en faut peu pour être heureux !!!!!
Patochewie
le 16/06/2004 à 16:56
Patochewie
Merci Moogli, j'ai changé vite fait d'approche de mon problème et j'en arrive à ça: http://www.lephpfacile.com/wall/lire_wall.php?wall=1471
si quelqu'un a une idée pour faire marcher ce truc ou un truc du genre ce serai bien cool.
moogli
le 16/06/2004 à 19:08
moogli
de rien smiley

Pour commencer est ce que tu as un message d'erreur cela peu aider ?
ensuite pour tes tableaux il sont déclarer quand tu les utilisent pour la première fois (comme toute variable et bien sur sauf erreur de ma part :) )

Pour tes boutons radio, si tu qu'une seul réponse possible par question faut leur donner le meme nom sinon tu peut toute les selectionners.
Il en faut peu pour être heureux !!!!!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours