STIC Discussion:STIC I - exercice 7 (Nestor-Pixel)

De EduTech Wiki
Aller à la navigation Aller à la recherche

Standard Formulaire/Quizz ?

Est-ce qu'il existe un genre de standard pour décrire/définir des questions de formulaire ou des formulaires ou complet ?

Vous m'avez parler d'un début de standard dans le cours, mais je ne l'ai pas retrouvé... Merci--Davidc 28 novembre 2007 à 17:24 (CET)Répondre[répondre]


réponse

...Donc c'est un standard e-learning, pas un truc générique pour faire des formulaires.

  • Sinon, aura peut-etre des trucs qui vont émerger autour des XFORMS (un langage pour faire des formulaires et qui remplace le form du HTML.

http://www.w3.org/MarkUp/Forms/2003/xforms-faq.html

merci

Je vais jeter un oeil dans ces voies là. Danke --Davidc 28 novembre 2007 à 22:47 (CET)Répondre[répondre]

Choix

je pose une série de réponses à une question. A chacune je donne "value=1", "value=2" etc... le visiteur ne choisira qu'une réponse. Dans le formulaire de résultat, il y aura 2 catégories de réponses, mettons A et B. S'il choisit 1, 4, 5 ou 6, il tombe dans la catégorie A. S'il choisit 3,7,8 ou 9, il tombe dans la catégorie B.

Puis-je écrire :

if ($choice = 1;4;5;6) then {echo "A";}

elseif ($choice = 3;7;8;9) then {echo "B";}

merci pour votre aide- Sylviane - 19 janvier


Réponse

au niveau de la syntaxe ça serait plutôt un truc comme ça :

if ($choice == 1 || $choice == 4 || $choice == 5 || $choice == 6)
	echo "A"; 

elseif ($choice == 3 || $choice == 7 || $choice == 8 || $choice == 9)
	echo "B";

--Bertrand Schneider 19 janvier 2008 à 18:43 (CET)Répondre[répondre]


et pour rajouter une couche.. Si tu as une série de question de ce type, tu peux aussi bien te créer une fonction et mettre tes choix de réponses (A ou B) dans des liste (array) :

$answers_A_question1 = array(1,4,5,6);
$answers_B_question1 = array(3,7,8,9);

//****tu lances ta fonction pour vérifier chaque question****
check_response($answers_A_question1, $answers_B_question1, $choice);

function check_response($answers_A, $answers_B, $user_choice ){
	if (in_array($user_choice, $answers_A)){
		echo "A";
	}elseif(in_array($user_choice, $answers_B)){
		echo "B";
	}
}

Si tu as envie, on peut compliquer l'affaire jusqu'à l'infinie :P --Davidc 19 janvier 2008 à 21:56 (CET)Répondre[répondre]


Vous êtes sympas, les garçons, mais ça ne marche pas terrible :-(( Quand je clique sur afficher le resultat, ça m'affiche du code. D'ailleurs le problème est peut-être ailleurs car Bertrand, je viens d'essayer ton formulaire et si le formulaire s'affiche correctement, par contre les resultats s'affichent sous forme de code. Je crois que je vais jeter l'éponge.

Sylviane 19 janvier 2008 à 22:25 (CET)Répondre[répondre]

OUF !!!!!!!! ça a l'air de marcher sur le serveur ! Alors que ça ne marchait pas chez moi ni sur Easyphp ni sur Wamp ! Ben ça fait que 3 h que je cherche ! J'ai plus qu'à faire la mise en page.

Sylviane 19 janvier 2008 à 23:25 (CET)Répondre[répondre]


ahah j'étais en train de poster ma réponse :

" Mon formulaire? Celui qui est à http://tecfa.unige.ch/etu-maltt/nestor/schneib0/stic/ex7/ ? ça marche chez moi... J'ai également essayé ton formulaire, il marche aussi... ça me met intrinsèque ou extrinsèque d'après mes choix. Faut juste améliorer la mise en page du formulaire, ça me met tout sur une ligne chez moi.

Sinon le php tu peux pas le faire exécuter en local, tu es obligé de le faire interpréter par un serveur. Donc pour le tester il faut soit que tu lances un truc style wampserver ou que tu uploades tes fichiers sur le serveur tecfa. "

mais trop en retard :) content que ça marche! bonne soirée

--Bertrand Schneider 19 janvier 2008 à 23:30 (CET)Répondre[répondre]

Toutes dernières questions (on espère :-)

Merci tout de même, Bertrand pour tes réponses.

Est-ce que c'est ton javascript qui permet aux resultats de s'afficher sur la même page ? Autre chose : est-on obligé de mettre en UTF-8 parce que les accents et les apostrophes ça bidouille chez moi, alors qu'en iso-8859-1 ça va bien. Donc pourquoi finalement faut-il utiliser UTF-8 (il me semble que DKS avait dit en presentiel qu'il fallait préférer l'UTF-8)?

Sylviane 20 janvier 2008 à 01:03 (CET)Répondre[répondre]


Pour l'affichage sur la même page, c'est ajax que j'ai utilisé. David a fait un petit tutorial là-dessus pour l'exercice 4 de STIC, si ça t'intéresse ;)

Pour l'encodage, le mieux c'est de mettre UTF-8 dans ta page html et dans ton navigateur (affichage > encodages des caractères > UTF-8). Je sais plus exactement pourquoi il faut préférer celui-ci, mais ça doit être une question de compatibilité et de normes...

--Bertrand Schneider 20 janvier 2008 à 09:07 (CET)Répondre[répondre]


Ah oui, je viens de lire sur ton rapport à quoi servait le javascript (wâââ je me sens bête tout à coup ;-) mais j'ai le droit, on n'a pas encore étudié le javascript :-). Je vais aller voir le cours de David sur Ajax. merci Sylviane 20 janvier 2008 à 09:42 (CET)Répondre[répondre]

C'est raté, c'était pas la dernière question ;-)

Bertrand, comment tu sais que le visiteur qui va écrire ses coordonnées ou ses remarques dans le champ texte en bas de page, ne va pas entrer dans l'espace dédié du code qui va tout casser ton beau formulaire ? Ses nom et prenom sont stockés où finalement ? je te demande ça parce que je ne vois pas de fichier texte dans ton répertoire où seraient stockées ces données, qui pourraient être ensuite lues par le fichier php (si j'ai bien compris la procédure.. mais c'est pas sûr)

Sylviane 20 janvier 2008 à 12:44 (CET)Répondre[répondre]


Tout à fait. Il faut utiliser une fonction php pour empêcher au code d'être exécuté :

htmlspecialchars("texte entré par l'utilisateur")

On l'utilise en général chaque fois que l'on affiche du texte fourni par des utilisateurs... les données sont stockées dans des variables que les fichiers php s'échangent (en général $_POST['nom_de_la_variable'] ou $_GET['nom_de_la_variable'] si tu veux récupérer une variable qui se trouve dans l'url, par exemple index.php?nom_de_la_variable=ma_variable)

)

--Bertrand Schneider 20 janvier 2008 à 13:26 (CET)Répondre[répondre]