Page 1 sur 2

Sondages en entreprise

Posté : 09 juin 2005, 14:18
par pinpin
Salut :)
Comme le titre de mon message l'indique je souhaite réaliser plusieurs sondages dans l'entreprise. Le plus facile serait de prendre un script car on en trouve des très bien pour cela mais j'ai quelques contraintes.
En effet il y plusieurs questions sur la page, et un bouton de validation. Et il faut que ceux qui ont participé au sondage ne puissent pas accéder au résultat :)

Un exemple tout bête (Les * correspondent aux questions que l'on coche):
Sa va bien ?
* Oui
Si non :
* J'ai mal au ventre
* Le travail c'est dur
* Obiwan kenobi

Quel genre de film aimez-vous ?(Plusieurs choix possibles)
* Science Fiction
* Comédie
* Romantique
* Historique

[Valider]
Voila le sondage serait comme ca sur la page aproximativement.
Mon problème intervient dans le fait de différencier les questions à simple choix et les questions à choix multiple. Une fois le vote réalisé sa va enregistrer dans la base de donnée le nombre de réponse à chaque question (En fait il y aura 8 sondages différents, et je compte faire une table pour chaque sondage, avec comme champ Réponse1_Question1, Réponse2_Question1, Réponse1_Question3 etc ...).

Donc si vous avez une idée pour résoudre mon problème du choix multiple. Je voudrais savoir aussi si ma méthode est bonne (Sachant qu'il y 8 sondages avec chacun possèdant 20 questions avec 5 réponses en moyenne). Et enfin je voudrais savoir comment réaliser le petit cercle que l'on coche pour y enregistrer la valeur choisie.

Voila je vous remercie d'avance pour votre aide :)

Posté : 09 juin 2005, 14:56
par ouckileou
fait petit à petit

<input type="checkbox"> si tu veux pouvoir cocher plusieurs choix
<input type="radio"> si tu veux pouvoir cocher un seul choix

et ta structure de base de données me parait un peu lourde
et moi je ferais plutôt une table sondages, une table questions, et une table réponse, reliée les unes aux autres

Posté : 10 juin 2005, 11:57
par pinpin
Voila je me suis mit dans la tête une idée assez simple pour faire ce que je veux faire ^^
Mais j'ai quelques problèmes :)

Voici l'exemple d'une question :
<html><body>

<form method=post action="<?php echo $_SERVER['PHP_SELF']; ?>">
<font face="Tahoma" size="2">

<b><font color="#333399">
1 - Conseillez-vous l'assistance en ligne ? <br>
</font></b>


<input type="radio" name="Q1" value="1">Oui <br> <br>
Si non pourquoi ? <br>
<input type="radio" name="Q1" value="2">Vous ne trouvez pas ça utile <br>
<input type="radio" name="Q1" value="3">Ca ne répond pas à l'attente de l'abonné <br>
<input type="radio" name="Q1" value="4">Autre <br> <br>
</font>

<input type="submit" name="Submit" value="Envoyer">

</form>


<?php  
echo  '<p>Question choisie : ' . $_GET['Q1'] . '</p>';
?>

</html></body>
Le fait est que il devrait afficher le numéro de la réponse choisie mais bon il ne le fait pas justement :(
Je voudrais aussi savoir comment afficher les questions sélecitonner dans le cas d'une checkbox =)

Merci d'avance pour votre aide.

Re: Sondages en entreprise

Posté : 10 juin 2005, 12:00
par pjl
(En fait il y aura 8 sondages différents, et je compte faire une table pour chaque sondage, avec comme champ Réponse1_Question1, Réponse2_Question1, Réponse1_Question3 etc ...).
heureusement que tu ne fais pas un sondage par jour comme dans mon ancienne boite.

Posté : 10 juin 2005, 12:01
par zeus
Si tu veux donner plusieurs fois le même nom à plusieurs balise, il faut que tu passe par un tableau!!!

Ensuite, il faut que tu choisissent les case qui sont à TRUE
<html><body>

<form method=post action="<?php echo $_SERVER['PHP_SELF']; ?>">
<font face="Tahoma" size="2">

<b><font color="#333399">
1 - Conseillez-vous l'assistance en ligne ? <br>
</font></b>


<input type="radio" name="Q1[]" value="1">Oui <br> <br>
Si non pourquoi ? <br>
<input type="radio" name="Q1[]" value="2">Vous ne trouvez pas ça utile <br>
<input type="radio" name="Q1[]" value="3">Ca ne répond pas à l'attente de l'abonné <br>
<input type="radio" name="Q1[]" value="4">Autre <br> <br>
</font>

<input type="submit" name="Submit" value="Envoyer">

</form>


<?php
$a_question = $_GET["Q1"]:
foreach($a_question as $val) {
  echo '<p>Question choisie : ' . $_GET['Q1'] . '</p>';
}
?>

</html></body>

Posté : 10 juin 2005, 12:09
par pinpin
Merci pour ton aide Zeus, sinon à la ligne 24 tu as mit un : à la place de ;

:)

Mais une erreur persiste (Ou serait le fun sinon ?)

Warning: Invalid argument supplied for foreach() in /var/www/free.fr/4/0/slake13/Sondage/index.php on line 25

Voila j'aimerais bien savoir de quoi il en retourne mais ... je ne vois vraiment pas :/

Posté : 10 juin 2005, 12:25
par Cyrano
Dals le cas d'un bouton radio, il ne sert strictement à rien d'utiliser un tableau: on fait ça pour des cases à cocher; Pour des boutons radio, on ne récupère de toutes façons qu'une seule valeur, donc vire les [ ] du nom des boutons et ensuite utilises directement sans utiliser de foreach la valeur récupérée

Posté : 10 juin 2005, 13:22
par zeus
Excuse moi, je lit trop vite

Oublie ce que je t'ai dit

Posté : 10 juin 2005, 13:53
par pinpin
c'est pas grave zeus merci pour l'aide quand même ;)
Sinon j'ai fait ce que tu dis Cyrano mais je n'arrive toujours pas à récupérer la valeur que je souhaite. Je pene que j'interpretre mal la commande GET
<html><body> 

<form method=post action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<font face="Tahoma" size="2"> 

<b><font color="#333399"> 
1 - Conseillez-vous l'assistance en ligne ? <br> 
</font></b> 


<input type="radio" name="Q1" value="1">Oui <br> <br> 
Si non pourquoi ? <br> 
<input type="radio" name="Q1" value="2">Vous ne trouvez pas ça utile <br> 
<input type="radio" name="Q1" value="3">Ca ne répond pas à l'attente de l'abonné <br> 
<input type="radio" name="Q1" value="4">Autre <br> <br> 
</font> 

<input type="submit" name="Submit" value="Envoyer"> 

</form> 

<?php 
$réponse1 = $_GET["Q1"];
echo $réponse1;
?> 

</html></body> 

Posté : 10 juin 2005, 13:55
par Cyrano
Normal: ton formulaire est en method="post", donc il faut récupérer avec $_POST[] et non $_GET[]

Posté : 10 juin 2005, 13:59
par pinpin
Cool sa marche exactement comme je le souhaite :)
Merci beaucoup cyrano ;)

Je vais encore utiliser ce post car faut que je test avec checkbox et il faut que j'écrive dans un fichier, oula mes problèmes sont pas encore finit :-(

Posté : 10 juin 2005, 14:03
par Cyrano
Si tu veux voir comment traiter un formulaire en PHP, récupères CECI, c'est un formulaire maison qui traite de la validation des données et tu verras comment traiter presque toutes les formes de champ de formulaire à l'exception de champs de type "file"

Posté : 10 juin 2005, 14:08
par pinpin
ok merci beaucoup je regarde ca

Posté : 17 juin 2005, 09:59
par pinpin
Salut,
J'ai pas mal avancé dans ce que je voulais faire, et j'ai selon moi réalisé le principal. C'est à dire que ma page affichage toutes les questions, avec un bouton valider à la fin. Et après avoir répondu au questionnaire j'ai chaque variable qui enregistre un numéro correspondant à la réponse. Par exemple pour la question 1 j'ai une variable Q1 et si j'ai répondu à la question 3 j'aurais donc 3 dans la variable Q1 :)

Maintenant je dois interpréter tout ces résultats, le problème c'est que je ne sais pas quel méthode choisir entre fichier txt ou BDD et je ne sais pas vraiment comment faire. En fait cela sera fastidieu, mais j'ai encore pas mal de temps pour le faire et écrire plusieurs fois la même chose me dérange pas...

Donc pour procéder je compte faire quelque chose dans ce style :
if ($Q1 = 1)
{
    //On récupère la valeur qui correspond à cette question dans un fichier texte ou une BDD, on l'incrémente, et on l'enregistre sur la même ligne
}
if ($Q1 = 2)
{
    //On récupère la valeur qui correspond à cette question dans un fichier texte ou une BDD, on l'incrémente, et on l'enregistre sur la même ligne
}
Voila et pour finir il y aura une partie affichage mais qui sera sur une autre page, mais si je sais faire cela, la troisième partie ne posera pas de problème ;)

Je pense que la base de donnée serait une bonne solution car pour une question j'aurais 7 réponses grand maximum, donc voila un petit screenshot pour vous montrer comment j'imagine cela :
Image

Donc j'ai 3 questions dans mon cas. Pour la première et deuxième question j'ai 7 réponses possibles, pour la troisième j'en ai 4 mais sa n'a pas vraiment d'importance.

Voila je voudrais savoir comment faire une fois connecté à la BDD pour récupérer la valeur exact que je veux (disons la réponse 2 de la question 3 dans mon cas) pour l'enregistrer dans une variable, l'incrémenter (ca je sais faire ^^), puis actualiser la BDD avec la nouvelle valeur. Limite si il est possible de l'incrémenter directement sa m'arrangeré :)

Voila voila =)

Posté : 17 juin 2005, 10:17
par pinpin
Donc j'ai regardé sur quelques sites pour savoir comment faire, j'ai vu quelques trucs pouvant m'aider :
$Q2BIS = SELECT * FROM sondagetable WHERE question=3 AND réponse2
$Q2BIS++;
UPDATE sondagetable SET réponse2=$Q2BIS WHERE question=3 
Bon pour la première ligne j'en suis vraiment pas sur, moi je veux juste enregistrer dans Q2BIS la valeur qui de la réponse 2 pour la question 3