Problème variable POST

Fermé
derit - Modifié par derit le 1/06/2015 à 15:21
 derit - 13 juin 2015 à 14:51
Bonjour, j'ai un probleme dans mon code et je n'arrive pas a le trouver, voila la page 1

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="question 2.css" />

</head>

<body>
<FORM action="testpoints2.php" method="post">
<input type="radio" name="choix" id="radio" value="1"/>
<input type="button" name="blabla" id="correction" onclick="ajouteMoi()"/>
<input type="text" name="score" id="text"/>
<input type="submit" id="continue" value="CONTINUE" />
<input type="hidden" id="js" name="js" value="[varTotal]" />
</FORM>

<SCRIPT language="JAVASCRIPT">
function ajouteMoi() {
var varTotal = 1;
if (document.getElementById('radio').checked) document.getElementById("text").value = (varTotal)+"/7";
}
</SCRIPT>
</body>


et voila la page 2 :

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="question 2.css" />

</head>

<body>
<FORM action="testpoint3.php" method="post">
<input type="text" name="score" id="text" value= "<?php echo $_POST['score']; ?>"/>
<input type="radio" name="choix" id="radio" value="1"/>
<input type="button" name="blabla" id="correction" onclick="ajouteMoi()"/>
<input type="submit" id="continue" value="CONTINUE" />
</FORM>

<SCRIPT>
function ajouteMoi() {
var varTotal = <?php echo $_POST['js']; ?>;
if (document.getElementById('radio').checked) document.getElementById("text").value = (varTotal++)+"/7";
}
</SCRIPT>
</body>

A voir également:

8 réponses

blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
Modifié par blackduck le 3/06/2015 à 15:27
En fait ce qu'il se passait c'est que dans ta page1 la variable contenant le Total n'était pas bien enregistrée dans le champ hidden. Donc ce que j'ai fait c'est de bien l'enregistrer dans ce champ pour que lors de l'appel de page2 la variable $_POST['js'] contienne bien le chiffre en question (ce n'était pas le comportement du script que tu m'as envoyé).
Et ainsi de suite en page2 je l'a récupère, l'incrémente et l'a ré-enregistre dans le champ hidden.

Met le poste en résolu please ;) (et les petits "plus" font toujours plaisir :p)

Bon courage pour la suite, hésite pas

Résolu? ===> [RESOLU]
1
j'ai un soucis mais quand je me trompe genre je suis a la 1 er question et que je me trompe a la 2 eme et que je suis a la troisieme et j'ai bon a la 3eme je ne peux pas avoir le score puisque il enregistre a chaque fois que je change de page donc il faut que j'ai bon a chaque page
donc comment fait on pour écrire que si il coche bien le bon bouton cela actualise la variable [js] mais que si il se trompe alors cela remet celle d'avant excusez moi je n'avez pas tester cette hypothese
merci d'avance
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
1 juin 2015 à 15:28
Salut,

Quand tu dis que tu as un problème c'est à dire?
Qu'est ce qui ne fonctionne pas?
0
le code ne marche pas en faite a la page 2 cela transmet la variable js mais cela ne l'augmente pas de 1
merci d'avoir été rapide
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
Modifié par blackduck le 1/06/2015 à 16:32
Re,

En effet ça ne peut pas l'incrémenter de 1, lorsque tu appelles ta variable POST en page2

var Total = <?php echo $_POST['js']; ?>;

La valeur que tu charges vaut ce que tu mets dans le paramètre value de cette ligne là de la page1
 <input type="hidden" id="js" name="js" value="[varTotal]" />

Mais varTotal ne correspond à rien en page2

Qu'est ce que tu cherches à faire exactement dans l'enchaînement de ces pages?

Résolu? ===> [RESOLU]
0
je cherche a quand on coche un certain bouton radio et qu'on clique sur le bouton (qui sert a "corriger") et ben on augmente de 1 mais il faut retenir la variable de tout a l'heure pour que si le client coche mauvais un truc (on imagine il a 1/7) et qu'a la question 3 il coche bon que ca augmente de 1 cette fameuse variable. vous voyez on pourrais pas "afficher" une variable "stable" car sinon ca ne marcherais pas...
donc on retiens l'ancienne var et on l'augmente de 1 QUE si il coche le bon bouton radio et qu'il clique sur le bouton "correction" ensuite

PS: excusez moi pour le paragraphe mais il fallait que je vous explique.
(en gros pour vous visualiser la chose, c'est un quiz.)

Merci de me répondre.
0
la variable varTotal et égale a la variable de la page 1 !
Merci d'avance
0
pourriez vous me répondre
0
pourriez vous me répondre svp
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
3 juin 2015 à 11:53
Hello,

Je te poste un code qui a le fonctionnement que tu souhaites, le principe est d'afficher le score (1/7 , 2/7 etc) dans la zone de texte et d'incrémenter le Total en javascript que l'on stock dans le champ hidden.

Cependant tu as encore des choses à faire pour vérifier que c'est la bonne réponse etc car la ça incrémente de page en page vu qu'il n'y qu'un réponse possible.

page1.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />

</head>

<body>
<FORM action="page2.php" method="post">
<input type="radio" name="choix" id="radio" value="1"/>
<input type="button" name="blabla" id="correction" onclick="ajouteMoi()"/>
<input type="text" name="score" id="text"/>
<input type="submit" id="continue" value="CONTINUE" />
<input type="hidden" id="js" name="js" value="" />
</FORM>

<SCRIPT language="JAVASCRIPT">
function ajouteMoi() {
var varTotal = 1;
if (document.getElementById('radio').checked){
document.getElementById("text").value = (varTotal)+"/7";
document.getElementById("js").value = (varTotal) ;
}
}
</SCRIPT>
</body>


page2.php
<!DOCTYPE html> 
<html>
<head>
<meta charset="utf-8" />
</head>

<body>
<FORM action="testpoint3.php" method="post">
<input type="text" name="score" id="text" value= "<?php echo $_POST['score']; ?>"/>
<input type="radio" name="choix" id="radio" value="1"/>
<input type="button" name="blabla" id="correction" onclick="ajouteMoi2()"/>
<input type="submit" id="continue" value="CONTINUE" />
<input type="hidden" id="js" name="js" value="" />
</FORM>

<SCRIPT>

function ajouteMoi2() {
var Total = <?php echo $_POST['js']; ?>;
Total++;

if (document.getElementById('radio').checked){
document.getElementById("js").value = Total;
document.getElementById("text").value = (Total)+"/7";
}
}

</SCRIPT>
</body>

0
Mr merci beaucoup mais je ne comprend pas ce que vous avez changer cela marche tout de meme apres 2 mois de recherche...
donc je vous dit Merci beaucoup et si vous avez le temps dîtes moi ce que vous avez changer. L'autre partie du code (qui est un quiz) je l'ai justement fait mais c'était le code du score qui me stopper et ca bloquer depuis bien longtemps donc merci beaucoup.

Derit.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
3 juin 2015 à 17:27
Re,

Oui je me doutais de ça, c'est pour cela que je t'avais mis en garde dans le message où je te re-postais les codes.
Tu devrais commencer par faire un formulaire avec au moins deux choix pour que ça devienne un petit peu plus concret.

Je reviens vers toi un petit peu plus tard
0
c'est deja fait j'ai meme 4 choix en faite il est pret mais il manque que le score bon je vais devoir arreter mais je serais la demain soir donc a bientot
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
4 juin 2015 à 09:46
Reposte ton formulaire avec les différents choix.
0
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="question.css" />

</head>

<body>

<h1 id="titreweb">English Test</h1>

<h1 id="titrequest" style="margin-left: 13px">What did Bill Gates found ???</h1>

<p id="phrase">Microsoft</p>
<p id="phrase2">Apple</p>
<p id="phrase3">Linux</p>
<p id="phrase4">Pokemons</p>

<FORM NAME="form3">
<input type="radio" name="choix" id="radio" value="1">

<input type="radio" name="choix" id="radio2" value="2">

<input type="radio" name="choix" id="radio3" value="3">

<input type="radio" name="choix" id="radio4" value="4">

<input type="button" name="but" id="correction" value="Correction:" onClick="choixprop(form3)">
</FORM>

<FORM NAME="form2" action="question 2.php" method="post">

<input type="submit" id="continue" value="CONTINUE" />
<input type="text" readonly="" name="text" id="text" style="margin-top= 300px;" value="0/7" />
<input type="hidden" id="js" name="js" value="" />
</FORM>

<SCRIPT>
var varTotal = 1;
function choixprop(form3) {
if (form3.choix[0].checked) { alert("Dommage ce n'est pas la bonne réponse, la bonne réponse était Microsoft ")};
if (form3.choix[1].checked) { alert("Dommage ce n'est pas la bonne réponse, la bonne réponse était Microsoft ")};
if (form3.choix[2].checked) { alert("Dommage ce n'est pas la bonne réponse, la bonne réponse était Microsoft ")};
if (document.getElementById('radio4').checked){
document.getElementById("text").value = (varTotal)+"/7";
if (document.getElementById('radio4').checked) { alert("Bravo!!! La bonne réponse était Microsoft")};}
document.getElementById("js").value = (varTotal);
document.getElementById("radio").disabled = true;
document.getElementById("radio2").disabled = true;
document.getElementById("radio3").disabled = true;
document.getElementById("radio4").disabled = true;
}
</SCRIPT>

</body>

<foot>
<p id="copyright">© Copyright 2015 - ...</p>
</foot>
</html>



page n°2 :

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="question 2.css" />

</head>

<body>

<h1 id="titreweb">English Test</h1>

<h1 id="titrequest" style="margin-left: 13px">Who invented the electric bulb ???</h1>

<p id="phrase">Benjamin Francklin</p>
<p id="phrase2">Thomas Edison</p>
<p id="phrase3">John F.Kennedy</p>
<p id="phrase4">Alexender Bell</p>

<FORM NAME="form3">
<input type="radio" name="choix" id="radio" value="1">

<input type="radio" name="choix" id="radio2" value="2">

<input type="radio" name="choix" id="radio3" value="3">

<input type="radio" name="choix" id="radio4" value="4">

<input type="button" name="but" id="correction" value="Correction:" onClick="choixprop(form3)">
</FORM>

<FORM NAME="form2" action="question 3.php" method="post">
<input type="submit" id="continue" value="CONTINUE" />
<input type="text" readonly="" name="text" id="text" style="margin-top= 300px;" value= "<?php echo $_POST['text']; ?>"/>
<input type="hidden" id="js" name="js" value="" />
</FORM>

<SCRIPT language="JAVASCRIPT">
var Total = <?php echo $_POST['js']; ?>;
Total++;
function choixprop(form3) {
if (form3.choix[0].checked) { alert("Dommage ce n'est pas la bonne réponse, la bonne réponse était Microsoft ")};
if (form3.choix[1].checked) { alert("Dommage ce n'est pas la bonne réponse, la bonne réponse était Microsoft ")};
if (form3.choix[3].checked) { alert("Dommage ce n'est pas la bonne réponse, la bonne réponse était Microsoft ")};
if (document.getElementById('radio3').checked){
document.getElementById("js").value = Total;
document.getElementById("text").value = (Total)+"/7";}
if (document.getElementById('radio3').checked) { alert("Bravo!!! La bonne réponse était Microsoft")};
document.getElementById("radio").disabled = true;
document.getElementById("radio2").disabled = true;
document.getElementById("radio3").disabled = true;
document.getElementById("radio4").disabled = true;
}
</SCRIPT>

</body>

<foot>
<p id="copyright">© Copyright 2015 - ...</p>
</foot>
</html>




Je précise que je n'ai pas mis les bonnes phrases mais c'est pour que je n'ai plus qu'a les modifier après ^^ (et excusez mon ignorance de tous ce qui est organisation du code... je suis débutant et c'est un défi que j'ai relevé.)

Merci d'avance
0
trouvez vous un moyen ??????
0
Avez vous une piste ???
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
9 juin 2015 à 10:36
Re,

On va reprendre quelques trucs, premièrement est ce que c'est une obligation d'utiliser javascript pour ton projet? Car en te servant de ce type de code, il suffira à la personne sur la page d'ouvrir le code source pour trouver la réponse.
Donc je t'encouragerais à te diriger vers un traitement via un script php, cale te convient il?
0
Cela dépend, mais est ce que vous avez trouvé car en faite je suis en classe de 4eme et je fais ce projet seul et c'est pour l'école (je ne pense pas que qqu seras autant calé que mon en informatique sans me venté) donc je ne pense pas que qqu iras voir "dans examiner l'élément".... J'avais pris en compte le détail que les réponses seront visibles, mais bon ce n'est qu'un petit projet enfin bref donc déjà merci d'avoir travailler sur mon projet et de m'avoir aidé mais est ce que vous avez trouver ce fameux code ???
(et si possible rester dans le js car je ne suis pas bon en php mais je vais devoir être rapide pour finir donc toute solution opérationnel sera la bienvenue ... ^^)

Merci de votre rapidité
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
10 juin 2015 à 10:41
Salut,

Ok je comprends le truc, on va rester avec ta solution pour le moment dans ce cas. Je te poste tes deux pages un petit peu modifiées avec le comportement que tu cherches

page11.php
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <!--<link rel="stylesheet" href="question.css" />-->
    </head>
	
	<body>
	<h1 id="titreweb">English Test</h1>
	<h1 id="titrequest" style="margin-left: 13px">What did Bill Gates found ???</h1>
	
	<FORM NAME="form3">
		<input type="radio" name="choix" id="radio" value="1">Pokemons<br>	
		<input type="radio" name="choix" id="radio2" value="2">Apple<br>
		<input type="radio" name="choix" id="radio3" value="3">Linux<br>
		<input type="radio" name="choix" id="radio4" value="4">Microsoft<br>
		<input type="button" name="but" id="correction" value="Correction:" onClick="choixprop(form3)">
	</FORM>
	
	<FORM NAME="form2" action="page22.php" method="post">
	
	<input type="submit" id="continue" value="CONTINUE" />
	<input type="text" readonly="" name="text" id="text" style="margin-top= 300px;" value="0/7" />
	<input type="hidden" id="js" name="js" value="" />
	</FORM>
	
	<SCRIPT>

	var varTotal = 0;//On déclare pour la première fois varTotal 
	function choixprop(form3) { 
		
		if (document.getElementById('radio4').checked) { //Si c'est bla bonne réponse
			varTotal++;//On incrémente varTotal
			document.getElementById("text").value = (varTotal)+"/7";//On met la valeur dans l'espace text
			alert("Bravo!!! La bonne réponse était Microsoft"); //Déclenchement du message
		}else{//Sinon on incrémente pas varTotal et affichage de l'autre message
			alert("Dommage ce n'est pas la bonne réponse, la bonne réponse était Microsoft ");
		}
		
		document.getElementById("js").value = (varTotal);//On stocke varTotal dans le champ hidden
		
		var radios = document.getElementsByTagName("input");//On récupère la liste des input 
		for(var i=0;i<radios.length;i++){
			if(radios[i].type=="radio"){//On vérifie que ce soit bien des type radio
				radios[i].disabled=true;//On les désactive
			}
		}
	}

</SCRIPT>
	
	</body>

	<foot>
	<p id="copyright">© Copyright 2015 - ...</p>
	</foot>
</html>

fin de page11.php

Sur cette page1 j'ai mis en commentaire ton css car je ne l'avais pas et j'ai centré les champs input avec les réponse proposées, c'etait pour plus de visibilité.
Et page22.php
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="question 2.css" />
    </head>
	
	<body>
	<h1 id="titreweb">English Test</h1>
	<h1 id="titrequest" style="margin-left: 13px">Who invented the electric bulb ???</h1>
	
	<p id="phrase">Benjamin Francklin</p>
	<p id="phrase2">Thomas Edison</p>
	<p id="phrase3">John F.Kennedy</p>
	<p id="phrase4">Alexender Bell</p>
	
	<FORM NAME="form3">
		<input type="radio" name="choix" id="radio" value="1">
		<input type="radio" name="choix" id="radio2" value="2">
		<input type="radio" name="choix" id="radio3" value="3">
		<input type="radio" name="choix" id="radio4" value="4">
		<input type="button" name="but" id="correction" value="Correction:" onClick="choixprop(form3)">
	</FORM>
	
	<FORM NAME="form2" action="question 3.php" method="post">
	<input type="submit" id="continue" value="CONTINUE" />
	<input type="text" readonly="" name="text" id="text" style="margin-top= 300px;" value= "<?php echo $_POST['text']; ?>"/> 
	<input type="hidden" id="js" name="js" value="" />
	</FORM>
	
<SCRIPT language="JAVASCRIPT">

//Tu pourras copier coller ce code dans les autres pages, et changeant uniquement l'id de la bonne réponse
//La variable post nous permet de récupérer la variable stocké dans le champ hidden de la page précédente
var varTotal = <?php echo $_POST['js']; ?>; 

	function choixprop(form3) { 
		
		if (document.getElementById('radio3').checked) { //L'id a changé dans les prochaines pages selon la bonne réponse
			varTotal++;
			document.getElementById("text").value = (varTotal)+"/7";
			alert("Bravo!!! La bonne réponse était Microsoft")
		}else{
			alert("Dommage ce n'est pas la bonne réponse, la bonne réponse était Microsoft ");
		}
		
		document.getElementById("js").value = (varTotal);
		var radios = document.getElementsByTagName("input");
	
		for(var i=0;i<radios.length;i++){
			if(radios[i].type=="radio"){
				radios[i].disabled=true;
			}
		}
	}

</SCRIPT>
</body>

<footer>
<p id="copyright">© Copyright 2015 - ...</p>
</footer>
</html>

fin de page22.php

Hésite pas si ta des questions
0
merci beaucoup pour votre aide j'ai finis grace a vous le score mais rester sur mon post car je ne peux pas finir aurjourd'hui mais ce week end je pourrais m'y remettre
mais merci beaucoup a bientôt.
0
re, donc merci encore mais pour la page de fin (je rappelle en tout il y a 7 question)
je me disais a la 7eme mettre un code qui dirait :
si tu as un score :
<3 = alors tu accède a la page 1
<6/>3= tu accède a la page 2
>6= tu accède a la page 3
< = plus petit que
> = l'inverse
je voudrais ca pour faire la page de fin et donc mettre se code qui voudrait dire
si tu un score "varTotal" plus grand/petit que .... alors accéder a cette page
et si je me trompe pas je pense vous demander du php(pardon)....
cela serait une grande aide!

et donc la page 1/page 2/page 3 correspondent a une page de fin chaque une
et en fonction du score, il serait redirigé sur une de ces 3 pages
et l'idée est que sur chaqu'une de ces pages serait marqué un message différent
ex: tu as bien jouer...
dommage ré-essai... (mais le contenu je m'en occupe...)

merci d'avance
0
êtes vous encore sur ce post ???
0