Appeler variale java

Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   -  
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai une page en .js et a l'interieur j'ai ça:

var sl_1_sol1 = "<input class='actinput' value='vert'> <INPUT class='actinput' value='ver'> <INPUT class='actinput' value='vers'>"

Dans une page en .php je voudrai appeller une fonction qui affiche juste un des trois "input class".
Je me demandai comment faire.

Merci de votre aide,
Benjamin
A voir également:

18 réponses

xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Salut,
A mon avis il faut que tu les mettes dans trois variable différentes!
Car la elles sont indisociable.
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
hum, ok.
Je vais donci dissocié ces trois parties.

Pour appeller une de ces variables, je voudrai que ce soit fait grace a une fonction.
Et cette fonction serait appellée grace a un "onclick" en php.

Cependant, comment appeller une fonction java grace a un onclick en php?
J'ai essayé ça:
<a href="#[1]" onclick=<script language="javascript">testtest1()</script>
<img src="../images/fleche_jaune.gif" alt="Regarde la réponse" width="105" height="55" /></a> </A>

mais ça marche pas.
Le but étant de lancer un script en cliquant sur une image.

Merci,
Benjamin
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
essaye déjà plus simplement ca:

onclick=<script>tafonction()</script>

Car peut être que la partie "javascript" ne lui plait pas ^^
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
erf, probleme.
Dans les deux cas,il interprete testtest1() comme du html, il me l'affiche sur la page web :/

<a href="#[1]" onclick=<script>testtest1()</script> ne fonctionne pas.
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
et si tu essaye juste de mettre le nom de ta fonction?

Genre:

<a href="#[1]" onclick="testtest1()"

Normalement si tu as inclus ta js il devrait la retrouver je pense (en tout cas ca marche comme ca avec une jsp ^^)
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
C'est pas la peine de mettre de balises script à cet endroit, onclick étant un évenement js :

<a href="#[1]" onclick="testtest1">

Par contre, ne pas oublier les guillemets (ou apostrophes, au choix)
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Maintenant, j'essai de comparrer 2 variables.

le truc c'est que ces variables sont:
var sl_1_enonce1_1 = "<input class='actinput' value=''>";
et
var sl_1_sol1_1 = "<input class='actinput' value='vert'>";

ce n'est donc pas le code que je veux comparrer mais le texte qu'il y a dans les champs texte créé par ces variables.

Comment faire pour lui faire comprendre que c'est ce qui est saisi par l'utilisateur qui doit etre comparrer?

J'ai testé
if(sl_1_enonce1_1.equals(sl_1_sol1_1))
alert ("incorrect");
ça ne marche pas.

Merci a vous,
Benjamin
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Si on parle toujours de java script, il faut que tu récupère l'input désiré en utilisant une des fonctions suivante:

var loInputs = getElementById(); -> il faut que ton input est un ID
var loInputs = getElementByName(); -> il faut que ton input est un Name
var loInputs = getElementsByTagName(); -> récupère tous les inputs de ton formulaire, après faut les parcourir avec un for et tester leur name pour retrouver celui que tu veux!

Une fois que tu l'as récupéré, pour avoir la valeur saisi par l'utilisateurs tu as juste à faire:

loInputs.value et tu compares avec ce que tu veux:



if(sl_1_enonce1_1.equals(loInputs.value))
alert ("incorrect");

0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Merci pour tes reponses,
^^ ça fait plaisir de voir un code avancer^^
Alors, jai ça:
var obj1 = document.getElementById("input103");
var obj2 = document.getElementById("input104");
alert('le champ a pour valeur : "'+obj1.value+"'")
Qui fonctionne tres bien :D
Il affiche bien ce que je saisi dans la case.

Par contre, ça, ça ne passe pas:
var sl_1_enonce1_1 = "<input class='actinput' id='input103'>";
var sl_1_sol1_1 = "<input class='actinput' id='input104' value='vert'>";
var obj1 = document.getElementById("input103");
var obj2 = document.getElementById("input104");
alert('le champ a pour valeur : "'+obj1.value+"'")
alert('le champ a pour valeur : "'+obj2.value+"'")
Pourant, ça devrait etre plus simple car le "input104" il a deja une value attribuée...
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Merci, ça marche tres bien pour l'instant.
J'ai juste un probleme pour recuperrer la value de ça:
var sl_1_sol1_1 = "<input class='actinput' id='input104' value='vert'>";
Pourtant, comme il a une value deja attribué ça devrait etre plus facile non?
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Quand tu dis que ca ne passe pas, c'est quoi l'erreur exactement?
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Mais, le problème, c'est que l'input n'existe pas en tant que tel (enfin, d'après ce que j'ai compris, ce qui est loin d'être sûr ^^)
le code de l'imput se trouve dans une variable js, mais pas dans le code html, du coup, ca ne marcherai pas
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
J'avoue que c'est pas très clair ^^

Mais bon elle doivent bien finir par y atterir dans le html ces inputs sinon ca sers à rien xD

Bon on va attendre qu'ils nous éclairent un peu!
0

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

Posez votre question
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
haha, je vais essayer d'etre plus clair.

Alors dans mon fichier de variables j'ai ces lignes:
var sl_1_enonce1_1 = "<input class='actinput' id='input103'>";
var sl_1_sol1_1 = "<input class='actinput' id='input104' value='vert'>";

Et dans la fonction, je travail avec comme suit:
var obj1 = document.getElementById("input103");
var obj2 = document.getElementById("input104");

alert('le champ a pour valeur : "'+obj1.value+"'");
alert('le champ a pour valeur : "'+sl_1_sol1_1+"'");

Donc je disai que ça marchai pour le 103. En effet, la valeur que je rentre dans le champ texte s'affiche ensuite dans mon alert()
Cependant, ça ne marche pas avec le 104.
Je pense que ça vient du fait que la methode n'est pas faite pour recuperrer une valeure par defaut. (en effet, on peux voir que 104 a la valeur par defaut "vert".

Donc la question: comment recuperrer cette valeur "vert"?
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Dans ton alert tu affiches sl_1_sol1_1 alors qu'il faudrait afficher obj2.value.
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
alert('le champ a pour valeur : "'+sl_1_sol1_1+"'"); 




Pourquoi ceci, au lieu de
alert('le champ a pour valeur : "'+obj2.value+"'"); 


?
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
J'avai faut ça parce que (et c'est toujours le cas) avec alert('le champ a pour valeur : "'+obj2.value+"'"); ça ne marchai pas.

Quand je met
alert('le champ a pour valeur : "'+obj1.value+"'");
alert('le champ a pour valeur : "'+obj1.value+"'");

(donc les meme) j'ai bien 2 alert qui s'affichent, mais quand je met
alert('le champ a pour valeur : "'+obj1.value+"'");
alert('le champ a pour valeur : "'+obj2.value+"'");
J'ai plus que la obj1 qui fonctionne. l'autre ne s'affiche meme pas.
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Dans ton code HTML, t'as bien un input avec l'id "input104" ?
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Déjà faudrait faire un peu de nettoyage des ton codes parcque ca part un peu vrille les " et les ' ^^

Mets ca:
alert("le champ a pour valeur : "+obj1.value);
alert("le champ a pour valeur : "+obj2.value);

ou ca:
alert("le champ a pour valeur : '"+obj1.value+"'");
alert("le champ a pour valeur : '"+obj2.value+"'");
Ca sera plus propre déjà!
et ensuite, si en effet tu as bien un input104 dans ton html, y'a pas de raison que ca marche pas...
Mais avec la valeur par défaut!
Donc je parierais sur une erreur de syntaxe!

Ton navigateur doit te remonter une erreur JS au moment ou tu exécutes ta page?
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
J'ai trouvé le probleme.
C'est a cause de windows! (bon d'accord pas cette fois, mais ça aurait pu^^ juste pour le plaisir :p )
Enfin bref, le probleme c'est que je n'affiche pas le 104 sur ma page (car il n'a pas a l'etre pour l'instant.
Donc maintenant, il faut que ma fonction fasse mes fameuse alert et qu'elle fasse s'afficher des info...
OK, je m'y colle se soir et vous fait un petit copte rendu demain.

Pour l'instant mes deux alert fonctionnent quand j'affiche le 104.
Donc UN GRAND MERCI a vous pour votre aide si précieuse, et a demain surement pour un nouveau chapitre^^

Amicalement,
Benjamin
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
bon courage pour la suite !
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Bonjour!
Mon code fonctionn avec des alert donc c'est que mes variables sont bien renseignées.
Cependant, quand je remplace mes alert par un test, exemple:

var obj1 = document.getElementById("input105");
var obj2 = document.getElementById("input104");

if(obj1.equals(obj2))
alert("Correct ");

if(!obj1.equals(obj2))
alert("inCorrect ");

ça ne fonctionne plus. rien ne se passe.
quelqu'un a une idée?
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Ba vi!
La tu tests des objet, pas leur valeur ;-)
Tu peux faire comme ca si tu veux juste tester leur valeur:


var obj1 = document.getElementById("input105").value;
var obj2 = document.getElementById("input104").value;

if(obj1.equals(obj2))
alert("Correct ");

if(!obj1.equals(obj2))
alert("inCorrect ");
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
ça ne merche pas. (il ne se passe rien)
De plus, quand je fait un test de ce ques les obj1 et2 contienne grace a ce code:
var obj1 = document.getElementById("input105").value;
var obj2 = document.getElementById("input104").value;

alert("le champ a pour valeur : "+obj1.value);
alert("le champ a pour valeur : "+obj2.value);

ça met met le alert avec "le champ a pour valeur : undefined"

Alors que si j'enleve les ".value" aux var obj, les alert fonctionnent.
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
oui ca c'est normal ^^
Car si tu mets les values aux deux endroits il est perdu!
Essaye comme ca:

var obj1 = document.getElementById("input105").value;
var obj2 = document.getElementById("input104").value;

alert("le champ a pour valeur : "+obj1);
alert("le champ a pour valeur : "+obj2);


Voir si ca marche déjà.
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Ok pour les alert, mais pourquoi le code que t'as donnée ne fonctionne pas?
celui qui compare:
var obj1 = document.getElementById("input105").value;
var obj2 = document.getElementById("input104").value;

if(obj1.equals(obj2))
alert("Correct ");

if(!obj1.equals(obj2))
alert("inCorrect ");
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Voir ci dessous ^^
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Et en fait, je pense que les .equals() n'existent pas en JS!!
Donc essaye comme ca:


var obj1 = document.getElementById("input105").value;
var obj2 = document.getElementById("input104").value;

if(obj1 == obj2)
alert("Correct ");

if(obj1 != obj2)
alert("inCorrect ");
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Une seule chose a dire:
=D
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
^^
Après faut voir ce que tu veux faire de tes obj1 et 2!
Car si tu veux les manipuler dans la suite de ton JS, il vaut mieu utiliser ce code, qui fonctionne exactement pareil:

var obj1 = document.getElementById("input105");
var obj2 = document.getElementById("input104").value;

if(obj1.value == obj2.value)
alert("Correct ");

if(obj1.value != obj2.value)
alert("inCorrect ");

Mais il te permet d'avoir les objets complet plutôt que juste leur valeur, donc à voir si tu en as besoin ou pas!
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
En fait, c'est une fonction qui corrige un exercicei.
Le résultat (qqui marche maintenant) c'est d'afficher dans un alert le nombre de bonnes reponse et de reponses incorectes.

j'en ai fait ça:

function correctionsl_1_enonce1()
{

display('sol_1');

var scoreexosl_1_enonce1 = 0;
var difscoreexosl_1_enonce1 = 0;


// case 1
var en1 = document.getElementById("sl_1_enonce1_1").value;
var rep1 = document.getElementById("sl_1_sol1_1").value;

if(en1 == rep1)
scoreexosl_1_enonce1 = scoreexosl_1_enonce1 +1;



// case 2
var en2 = document.getElementById("sl_1_enonce1_2").value;
var rep2 = document.getElementById("sl_1_sol1_2").value;

if(en2 == rep2)
scoreexosl_1_enonce1 = scoreexosl_1_enonce1 +1;


// case 3
var en3 = document.getElementById("sl_1_enonce1_3").value;
var rep3 = document.getElementById("sl_1_sol1_3").value;

if(en3 == rep3)
scoreexosl_1_enonce1 = scoreexosl_1_enonce1 +1;


// case 4
var en4 = document.getElementById("sl_1_enonce1_4").value;
var rep4 = document.getElementById("sl_1_sol1_4").value;

if(en4 == rep4)
scoreexosl_1_enonce1 = scoreexosl_1_enonce1 +1;


// case 5
var en5 = document.getElementById("sl_1_enonce1_5").value;
var rep5 = document.getElementById("sl_1_sol1_5").value;

if(en5 == rep5)
scoreexosl_1_enonce1 = scoreexosl_1_enonce1 +1;



difscoreexosl_1_enonce1 = 5 - scoreexosl_1_enonce1;
alert("Ton score est de : "+scoreexosl_1_enonce1+"/5. Tu as donc fait :"+difscoreexosl_1_enonce1+" erreures.");
}

Et ça merche tres bien, merci encore.
La j'essaie de faire en sorte que les cases ou il y a eu une erreure change leur couleur de font de blanc à rouge.
Tu sais comment faire?
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Un truc de genre devrait marcher :
if(en5 == rep5) 
scoreexosl_1_enonce1 = scoreexosl_1_enonce1 +1; 
else document.getElementById("sl_1_enonce1_5").style.backgroundColor='red';


Tu fais ca pour chacun
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
ça marche même parfaitement!
Merci.
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Voilà j'ai pas été assez rapide cette fois :-P
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Par contre, je viens de remarquer un "[object HTMLInputElement]" qui traine...
Apparement, ce serait du au fameux ".value" ajouté au GetelementbyID.

Savez vous comment le supprimer de mon affichage html?
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Je voudrai que mon utilisateur soit obligé d'indiquer un prenom, j'ai donc creer cette fonction:

function demandeprenom()
{
var prenom=prompt("Bonjour, commence par indiquer ton prénom :","");
if (name!=null && name!="")
{

}
else demandeprenom()
}

C'est censé faire "tant que le prenom n'est pas renseigné, je renvoi la fonction prenom()"
Mais ça ne fonctionne pas, pire, ça demande en boucle et je suis obligé de ctrl+alt+supr mon firefox^^
QUelqu'un vot ou est l'erreure?

Merci,
Benjamin
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
var prenom=prompt("Bonjour, commence par indiquer ton prénom :",""); 
if (name!=null && name!="") 


ca serait pas plutôt

if (prenom!=null && prenom!="") 
?
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Haha, oui, en effet.
C'etait ça le probleme. Merci.
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Pour que la valeure de la variable locale prenom soit envoyée a la variable globale prenom, il faut bien placer un reurn comme ceci?:

function demandeprenom()
{
var prenom=prompt("Bonjour, commence par indiquer ton prénom :","");
System.out.println(prenom);
if (prenom!=null && prenom!="")
{
return prenom;
}
else demandeprenom()

}
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Le return te permet de récupérer la variable en sortie de la fonction!
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Quelle variable globale ?
S'il y a déjà une variable globale prénom, faut pas de la redéclarer dans la fonction, sa portée ne serait qu'interne à la fonction sinon
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
oui, je cherche juste un moyen de faire sortir la valeur d'une variable locale vers une variable qui soit hors de ma fonction.
Quelque soit son nom, c'est juste la méthode que je cherche.
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
ben, tu fais :
variable globale = variable locale :O
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
c'est la premiere chose que j'ai testé mais ça marche pas.

J'ai ce code:

function demandeprenom()
{
var prenom1=prompt("Bonjour, commence par indiquer ton prénom :","");
if (prenom1!=null && prenom1!="")
{
var prenom=prenom1;
}
else demandeprenom()
}


Et j'utilise la variable prenom dans ne autre page en html comme ça:
<SCRIPT LANGUAGE="JavaScript">
document.write("Prénom: "+prenom);
</script>
0