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 -
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 :
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.
<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:
- Problème dans une fonction en JavaScript
- Fonction si et - Guide
- Telecharger javascript - Télécharger - Langages
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
4 réponses
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,' ') : ''; }
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>
<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>
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 :
J'ai également pensé à ceci mais toujours pas de résultat :
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
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?