Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/03/2008, à 13:59

BaLiSTiK

Projet XML/XSLT/PHP

Pour un projet de la fac, j ai un questionnaire XML/XSLT/PHP à faire et éprouve quelques difficultés, notamment en XSLT dans un premier temps, et PHP dans un 2nd temps.

Mon fichier XML se présente de ce style :

<sous_qcm matiere="informatique">
	<question>
		<libelle>Ma question gnagnia ?</libelle>
			<choix score="0">Reponse 1</choix>
			<choix score="0">Reponse 2</choix>
			<choix score="1">Reponse 3</choix>
	</question>
</sous_qcm>

Donc comme on peut le voir, une bonne réponse vaut 1 et une mauvaise réponse 0. Le .xml ne pose aucun soucis.

Le .xsl, lui récupère les données et les traite. Mon soucis repose sur l'affichage des réponses. En effet, mon prof souhaite que en cas de mauvaise réponse choisie, on attache la bonne réponse (pour être envoyé et traitée par le PHP ensuite).

<xsl:template match="choix">
	<div id="reponse">
	<input type="radio" name="{count(preceding::question)+1}" value="{@score}" style="border:#999999 1px solid;" />
	<em><xsl:value-of select="." /></em> valeur:<xsl:value-of select="@score" /><!-- Affiche la reponse -->
	<!-- il faut attacher la bonne reponse (lettre b)en cas de mauvaise réponse -->
	   <xsl:if test="@score == 0">
	       <input type="hidden" value="b" />
	   </xsl:if>
	</div>
</xsl:template>

Le probleme réside dans le <xsl:if>. Je ne sais pas trop comment l'attacher. De plus, j ai dans mon code un

<xsl:value-of select="concat('Q',count(preceding::question)+1)" />

mais je sais pas quoi en faire, je l'ai pris au tableau...
Je pense qu'il va servir dans la clause if...

Pour le PHP, voici le code pour l'instant, si ça peut aider :

<?php
$resultat = 0;

$chaine = $_SERVER["QUERY_STRING"]; //chaine recuperer
echo $chaine,'<br />'; //affichage de la chaine recuperer

foreach($_GET as $key=>$val){
	//$key correspond au numero des questions
	//$val correspond au point des réponses
	$pc = substr($key,0,1); //recupere le 1er caractere de la chaine
	if($pc == "b"){ //si le 1er caractere est b
		$num = substr($key,1);
		$bonneRep[$num] = $val;
	}
	else{
		$score[$key] = $val;
	}
}	

echo '<hr /> Resultat score total : '.$resultat;
?>

ps : j ai posté ce message sur le forum de PHPFRance hier mais je n'ai toujours pas eu de réponses, donc j'essaie ici.

Merci d'avance wink


Mon site perso : www.fonfonland.fr

"On ne fait pas de copinage avec le gratin musical, préférant de loin vendre moins mais garder l'impact d'une balle..." - Shouta Babylone

Hors ligne

#2 Le 09/03/2008, à 20:34

BaLiSTiK

Re : Projet XML/XSLT/PHP

up ?
Personne n'aurait une idée ?


Mon site perso : www.fonfonland.fr

"On ne fait pas de copinage avec le gratin musical, préférant de loin vendre moins mais garder l'impact d'une balle..." - Shouta Babylone

Hors ligne