Problème dans une fonction en JavaScript

Résolu
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   -  
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je suis en train de développer un système de quizz sur un site de géographie. Pour les réponses, j'ai mis en place des radio-bouton que l'utilisateur doit utilisé pour donner sa réponse. Voici le code JS :

<script type="text/javascript"> 
function Radio(question, point) {
    if (document.getElementById('<?php echo $bonnereponse['capitale']; ?>').checked == true) { 
        document.getElementById('Choix').innerHTML = '<br><b>Bonne réponse <?php echo $bonnereponse['capitale']; ?></b><br><br><form action="capitale.php" method="POST"><input type="hidden" value="toto" name="toto"><input type="hidden" value="' + question + '" name="qts"><input type="hidden" value="' + point + '" name="pts"><input type="submit" value="Capitale suivante" name="boutonquestion"></form>';
    } 
    else {
        var passage = passage + 1
        if(passage == 1){
         point = point - 10
         document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point +'</b></center>';
        }
        if(passage == 2){
         point = point - 20
         document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point +'</b></center>';
        }
        if(passage == 3){
         point = point - 30
         document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point +'</b></center>';
        }
        if(passage == 4){
         location.reload();
        }
    } 
} 
</script>


La partie 'if' fonction car la fonction détecte la bonne réponse, par contre la partie 'else' ne fonctionne pas, lorsqu'on choisit une mauvaise réponse rien ne se passe, or sauf erreur de ma part, le code devrait faire perdre à l'utilisateur 10, 20, 30 points ou recharger la page.

Merci de votre aide.
A voir également:

4 réponses

vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
la variable passage n'est égal à rien, donc on ne peut pas l'incrémenter au début du else :)
1
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
Ok merci vordano, c'est vraiment très facile, :)
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
connaîtrais-tu une fonction comme reload() mais dans laquelle on peut envoyé un paramètre (ici le nombre de point restant de l'utilisateur)?
0
vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
il y as document.location je crois, après tu met les paramètres en get
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
ok ça ferait quelque chose comme ceci?

if(passage == 4){
         document.location = point;
        }


Si oui comment je fais pour le récupérer au début de la page, sachant que le reste de la page est en php?
0
vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
est ce que tu as cherché sur google pour utiliser la méthode location et la récupération de paramètres d'une url ?
0
vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
du code qui pourrait t'être utile:
/**
 * Retourne la valeur d'un paramètre d'une url
 * 
 * @param string param
 * nom du paramètre dont on souhaite avoir la valeur
 * @param url
 * url dans laquel on souhaite récupérer le paramètre ou rien si l'on souhaite travailler sur l'url courante
 * @return String
 * @author Labsmedia
 * @see http://www.labsmedia.com/index.html
 * @licence GPL
 */
function getParamValue(param,url)
{
	var u = url == undefined ? document.location.href : url;
	var reg = new RegExp('(\\?|&|^)'+param+'=(.*?)(&|$)');
	matches = u.match(reg);
	return matches[2] != undefined ? decodeURIComponent(matches[2]).replace(/\+/g,' ') : '';
}
0
vincent170186 Messages postés 316 Date d'inscription   Statut Membre Dernière intervention   52
 
essaye -->

<script type="text/javascript">

<?php
if (isset($_GET['point2'])
{echo "var point3 = ".$_GET['point2']." ; var point = ".$_GET['point2'];

}
else
{echo "var point3 = 100 ; var point =100";}

function Radio(question, point) {
if (document.getElementById('Alger').checked == true) {
document.getElementById('Choix').innerHTML = '<br><b>Bonne réponse Alger</b><br><br><form action="capitale.php" method="POST"><input type="hidden" value="' + question + '" name="qts"><input type="hidden" value="' + point + '" name="pts"><input type="submit" value="Capitale suivante" name="boutonquestion"></form>';
}
else {
passage = passage + 1
if (document.location.href!=document.location.href.split("point2=")[0])
{ point3=document.location.search.split("point2=")[1];}
if(passage == 1){
if(point3!="" && point3 != 100){
point3 = point3 - 10
document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point3 +'</b></center>';
}
point = point - 10
document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point +'</b></center>';
}
if(passage == 2){
if(point3 && point3 != 100){
point3 = point3 - 20
document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point3 +'</b></center>';
}
point = point - 20
document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point +'</b></center>';
}
if(passage == 3){
if(point3 && point3 != 100){
point3 = point3 - 30
document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point3 +'</b></center>';
}
point = point - 30
document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point +'</b></center>';
}
if(passage == 4){
if(point3 && point3 != 100){
point3 = point3 - 40
document.getElementById('Reponse').innerHTML = '<center><b>Total des points : ' + point3 +'</b></center>';
}
point = point - 40
question = question + 1
document.location="http://mickael.bernaudeau.free.fr/capitale.php?point2="+point
}
}
}
</script>
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
Le problème des points est résolut, c'est plus simple en réceptionnant en php. Maintenant j'aimerais savoir comment faire pour envoyer deux valeurs

J'ai fais ceci mais ça ne fonctionne pas :

document.location="http://mickael.bernaudeau.free.fr/capitale.php?point2=point&question2=question


J'ai également pensé à ceci mais toujours pas de résultat :



document.location="http://mickael.bernaudeau.free.fr/capitale.php?point2="+point"&question2="+question 
0
vincent170186 Messages postés 316 Date d'inscription   Statut Membre Dernière intervention   52
 
document.location="http://mickael.bernaudeau.free.fr/capitale.php?point2="+point+"&question2="+question
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
Merci à vous deux Vincent et vordano pour aide et votre patience, problème résolu
0