Fonction javascript à l'aide
Résolu/Fermé
bnawfal
Messages postés
48
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
2 octobre 2012
-
19 mai 2008 à 12:37
alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 - 14 juin 2008 à 01:25
alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 - 14 juin 2008 à 01:25
A voir également:
- Fonction javascript à l'aide
- Fonction si et - Guide
- Telecharger javascript - Télécharger - Langages
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Snapchat ils m'ont ajouté par la fonction recherche - Forum Snapchat
19 réponses
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
19 mai 2008 à 12:42
19 mai 2008 à 12:42
Tu écris ton script dans un fichier séparé, un fichier texte, et tu nomme le fichier par exemple toto.js
Ensuite tu mets ce fichier dans un dossier et dans la partie HEAD de ta page HTML tu dois inclure une balise SCRIPT qui appelle ce fichier externe de cette façon :
<script src="toto.js" type="text/javascript"></script>
Ensuite tu mets ce fichier dans un dossier et dans la partie HEAD de ta page HTML tu dois inclure une balise SCRIPT qui appelle ce fichier externe de cette façon :
<script src="toto.js" type="text/javascript"></script>
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
19 mai 2008 à 13:44
19 mai 2008 à 13:44
tu fais des copier coller de ta fonction et tu change ces noms
bnawfal
Messages postés
48
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
2 octobre 2012
19 mai 2008 à 14:01
19 mai 2008 à 14:01
j'ai dejas fait ca mais il est valable si tu colle la fonction dans chaque page. moi je veux que tous le language javascript soit dans un fichier.js alors quand je fais des copier coller et je change les noms il execute seulment la premiere fonction
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
19 mai 2008 à 14:49
19 mai 2008 à 14:49
mais tu change aussi le nom des fonctions, banane! :p
bnawfal
Messages postés
48
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
2 octobre 2012
19 mai 2008 à 15:11
19 mai 2008 à 15:11
ahh ouii j'ai oublié
mais tu peux pas me dire comment faire pour utiliser une seul fonction, je doit changer quoi dans la fonction ??
mais tu peux pas me dire comment faire pour utiliser une seul fonction, je doit changer quoi dans la fonction ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
19 mai 2008 à 15:39
19 mai 2008 à 15:39
tu fais des conditions du genre 'si la valeur xx.xxx != null' pour chaque truc a rechercher, ou alors plus simple tu t'arrange pour que dans toutes tes pages, tous les champs qui utiliseront cette fonction portent le meme nom.
Voila, je sais pas vraiment si j'ai bien compris ce que tu cherche à faire exactement. Essaye de parler français, pas 'sms' et donne une adresse ou je pourrai voir un exemple explicite
Voila, je sais pas vraiment si j'ai bien compris ce que tu cherche à faire exactement. Essaye de parler français, pas 'sms' et donne une adresse ou je pourrai voir un exemple explicite
bnawfal
Messages postés
48
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
2 octobre 2012
19 mai 2008 à 16:04
19 mai 2008 à 16:04
ok je vais t'expliquer j'ai plusieur pages jsp dans les quelles il y a des formulaires avec different nom et dans chaque formulaire il y a un champ que je veux le faire sous le controle numerique avec la fonction suivante qui est dans un fichier separé :
function checkban(){
var x=document.AP02.TxProrata.value
var anum=/(^\d+$)|(^\d+\.\d+$)/
if (anum.test(x))
testresult=true
else{
alert("Entrez uniquement des chiffres entre 01 et 99")
testresult=false
}
return (testresult)
}
et je veux pas changer les nom du champs ou des formulaires alors je veux que cette fonction soit, (on peut dire) dynamique. je sais que le probleme et dans (var x=document.AP02.TxProrata.value), mais je sais pas comment faire
j'espere que t'as bien compris mon probleme
function checkban(){
var x=document.AP02.TxProrata.value
var anum=/(^\d+$)|(^\d+\.\d+$)/
if (anum.test(x))
testresult=true
else{
alert("Entrez uniquement des chiffres entre 01 et 99")
testresult=false
}
return (testresult)
}
et je veux pas changer les nom du champs ou des formulaires alors je veux que cette fonction soit, (on peut dire) dynamique. je sais que le probleme et dans (var x=document.AP02.TxProrata.value), mais je sais pas comment faire
j'espere que t'as bien compris mon probleme
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
19 mai 2008 à 17:00
19 mai 2008 à 17:00
Tu passe le nom de la zone a vérifier en paramètre à ta fonction en ajoutant une valrible dans la signature du genre
function checkban(nom_zone){
et dans ton html, tu appelle en passant ce nom genre : String appel = "onChange='checkBan("+ton_nom+");'";
et dans la fonction tu chope la zone de façon 'dynamique' :
document.forms['AP02'].elements[nom_zone].value
function checkban(nom_zone){
et dans ton html, tu appelle en passant ce nom genre : String appel = "onChange='checkBan("+ton_nom+");'";
et dans la fonction tu chope la zone de façon 'dynamique' :
document.forms['AP02'].elements[nom_zone].value
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
19 mai 2008 à 17:00
19 mai 2008 à 17:00
Tu passe le nom de la zone a vérifier en paramètre à ta fonction en ajoutant une variable dans la signature du genre
function checkban(nom_zone){
et dans ton html(ou jsp), tu appelle en passant ce nom genre : String appel = "onChange='checkBan(\\\""+ton_nom+"\\\");'";
et dans la fonction tu chope la zone de façon 'dynamique' :
document.forms['AP02'].elements[nom_zone].value
Voilà, ça marche...
function checkban(nom_zone){
et dans ton html(ou jsp), tu appelle en passant ce nom genre : String appel = "onChange='checkBan(\\\""+ton_nom+"\\\");'";
et dans la fonction tu chope la zone de façon 'dynamique' :
document.forms['AP02'].elements[nom_zone].value
Voilà, ça marche...
<html> <head> <script type="text/javascript"> function toto(nom_zone){ var mon_texte = document.forms['frm'].elements[nom_zone].value; alert("Le texte est "+mon_texte+"..."); } </script> </head> <body> <form name="frm" action=""> <input type="text" name="mon_nom" /> <input type="button" value="Click Me" onclick="toto('mon_nom');" /> </form> </body> </html>
bnawfal
Messages postés
48
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
2 octobre 2012
19 mai 2008 à 18:05
19 mai 2008 à 18:05
nn ca marche pas et que je doit faire dans la fonction chekban() et de quel zone tu parle que je dois donner le nom de la zone est ce que le nom du champ???
je croix que j'ai pas bien compris, tu peux me donner d'autre explication si c'est possible.
je croix que j'ai pas bien compris, tu peux me donner d'autre explication si c'est possible.
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
19 mai 2008 à 18:38
19 mai 2008 à 18:38
fais un copier coller de ce code dans une page blanche que tu enregistre comme index.html, et ensuite ouvre cette page dans un navigateur, tu vas vite comprendre.
Au lieu de faire :
var x=document.AP02.TxProrata.value
Où tu appelle précisément la valeur de la zone appelée TxProrata qui est contenue dans une zone appelée AP02.
Voici la version 'générique', tu fais
var x=document.forms['AP02'].elements['TxProrata'].value
Là tu invoque les formulaires de la page, en précisant que c'est ['AP02'] qui t'intéresse, puis tu appelle les éléments de AP02 en précisant que c'est ['TxProrata'] qui t'intéresse. Puis tu appelle la value obtenue.
Voici maintenant une version encore plus générique:
var mon_form = "AP02";
var mon_texte = "TxProrata";
var x=document.forms[mon_form].elements[mon_texte].value;
un conseil, renseigne toi un peu sur la programation orientée objet avant de te jetter dans le Java...
Au lieu de faire :
var x=document.AP02.TxProrata.value
Où tu appelle précisément la valeur de la zone appelée TxProrata qui est contenue dans une zone appelée AP02.
Voici la version 'générique', tu fais
var x=document.forms['AP02'].elements['TxProrata'].value
Là tu invoque les formulaires de la page, en précisant que c'est ['AP02'] qui t'intéresse, puis tu appelle les éléments de AP02 en précisant que c'est ['TxProrata'] qui t'intéresse. Puis tu appelle la value obtenue.
Voici maintenant une version encore plus générique:
var mon_form = "AP02";
var mon_texte = "TxProrata";
var x=document.forms[mon_form].elements[mon_texte].value;
un conseil, renseigne toi un peu sur la programation orientée objet avant de te jetter dans le Java...
bnawfal
Messages postés
48
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
2 octobre 2012
20 mai 2008 à 11:00
20 mai 2008 à 11:00
bonjour alexdelareunion
le problem est resolu, ca marche tres bien
merci pour votre aide et merci encore pour votre conseil
@+
le problem est resolu, ca marche tres bien
merci pour votre aide et merci encore pour votre conseil
@+
djoyanna
Messages postés
16
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2008
1
12 juin 2008 à 16:34
12 juin 2008 à 16:34
bonjour
j'ai un soucis avec une fonction js appelé dans un script php5 :
j'ai devellopé questionnaire avec réponse prédefini dans menu déroulant et une option "autre" pour chaque question qui , si elle est selectionné , fait apparaitre un champs text d'insertion.
pour ce faire j'appel donc la fonction suivante qui permet de rendre visible ou non le champ text.
<script language="javascript">
function RendVisibleAutre(texte)
{
if (texte=="autre")
document.getElementById("test").style.visibility= 'visible';
else
document.getElementById("test").style.visibility= 'hidden';
}
</script>
mon problème est que mon questionnaire est dynamique. j'ai donc 1 BDD avec 3 tables (question,reponse,reponse_client) et donc je ve utilisé pour chque question la fonction js. je ne c donc pas comment faire pour que cette fonction chqnge de nom chaque fois qu'elle est appelé .
pour vous expliquez mieu ce que je ve voici ce que j'ai pour le moment :
$lResult3 = $lCoupon->SelectQuestion();
foreach ($lResult3 as $row3)
{ $nbQuestion++;
echo '<p>';
//affichage de la question
echo $row3['intitule_question'];
echo '</p>';
$question=$row3['id_question'];
$lResult4 = $lCoupon->SelectReponse($question);
echo " <SELECT size=1 onchange='RendVisibleAutre(this.value)' name='reponse".$nbQuestion."'> ";
foreach ($lResult4 as $row4)
{
//affichage des reponse possible dasn option
$reponse=$row4['id_reponse'];
echo "\n".'<option value='.$row4['id_reponse'].'>';
echo $row4['intitule_reponse'];
//echo $reponse;
echo '</option>';
}
?>
//affichage du champ autre dans chque menu deroulant qui apparai mais
<option value='autre'>autre</option></SELECT>
<p>
<div id="test" style="visibility:hidden;position:absolute;">
<input type="text" name='autre'></div>
</p>
MERCIIIIIIIIIIIIIIIIIIIIIII :)
je suis en manque de savoirrr totallll svppp j'ai besoin de vous
j'ai un soucis avec une fonction js appelé dans un script php5 :
j'ai devellopé questionnaire avec réponse prédefini dans menu déroulant et une option "autre" pour chaque question qui , si elle est selectionné , fait apparaitre un champs text d'insertion.
pour ce faire j'appel donc la fonction suivante qui permet de rendre visible ou non le champ text.
<script language="javascript">
function RendVisibleAutre(texte)
{
if (texte=="autre")
document.getElementById("test").style.visibility= 'visible';
else
document.getElementById("test").style.visibility= 'hidden';
}
</script>
mon problème est que mon questionnaire est dynamique. j'ai donc 1 BDD avec 3 tables (question,reponse,reponse_client) et donc je ve utilisé pour chque question la fonction js. je ne c donc pas comment faire pour que cette fonction chqnge de nom chaque fois qu'elle est appelé .
pour vous expliquez mieu ce que je ve voici ce que j'ai pour le moment :
$lResult3 = $lCoupon->SelectQuestion();
foreach ($lResult3 as $row3)
{ $nbQuestion++;
echo '<p>';
//affichage de la question
echo $row3['intitule_question'];
echo '</p>';
$question=$row3['id_question'];
$lResult4 = $lCoupon->SelectReponse($question);
echo " <SELECT size=1 onchange='RendVisibleAutre(this.value)' name='reponse".$nbQuestion."'> ";
foreach ($lResult4 as $row4)
{
//affichage des reponse possible dasn option
$reponse=$row4['id_reponse'];
echo "\n".'<option value='.$row4['id_reponse'].'>';
echo $row4['intitule_reponse'];
//echo $reponse;
echo '</option>';
}
?>
//affichage du champ autre dans chque menu deroulant qui apparai mais
<option value='autre'>autre</option></SELECT>
<p>
<div id="test" style="visibility:hidden;position:absolute;">
<input type="text" name='autre'></div>
</p>
MERCIIIIIIIIIIIIIIIIIIIIIII :)
je suis en manque de savoirrr totallll svppp j'ai besoin de vous
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
13 juin 2008 à 03:41
13 juin 2008 à 03:41
Il y a quelque chose qui n'est pas clair :
- ya-t-il une seule zone de saisie 'autre' pour toutes les questions ?
- ou chaque question possède-t-elle sa zone 'autre' individuelle ?
Si j'ai bien saisi, tu ne dois pas avoir un id 'test' pour le div qui contient ta zone de saisie, mais un div avec id du genre 'test_1', et un autre 'test_2, etc pour chaque différente question.
Les SELECT de tes différentes questions doivent appeler 'RendVisibleAutre' en lui passant 2 paramètres au lieu d'un seul : RendVisibleAutre(this.value, id_de_la_zone_a_rendre_visible)
A toi de faire en sorte de générer les...
... et les ...
dans des boucles pour avoir des id distincts, le PHP est fait pour ça...
J'espère avoir bien compris ta question, sinon éclaire moi.
- ya-t-il une seule zone de saisie 'autre' pour toutes les questions ?
- ou chaque question possède-t-elle sa zone 'autre' individuelle ?
Si j'ai bien saisi, tu ne dois pas avoir un id 'test' pour le div qui contient ta zone de saisie, mais un div avec id du genre 'test_1', et un autre 'test_2, etc pour chaque différente question.
Les SELECT de tes différentes questions doivent appeler 'RendVisibleAutre' en lui passant 2 paramètres au lieu d'un seul : RendVisibleAutre(this.value, id_de_la_zone_a_rendre_visible)
A toi de faire en sorte de générer les...
echo " <SELECT size=1 onchange='RendVisibleAutre(this.value, test_N)' name='reponse".$nbQuestion."'> "; <p>
... et les ...
<div id="test_N" style="visibility:hidden;position:absolute;"> <input type="text" name='autre'></div> </p>
dans des boucles pour avoir des id distincts, le PHP est fait pour ça...
J'espère avoir bien compris ta question, sinon éclaire moi.
djoyanna
Messages postés
16
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2008
1
13 juin 2008 à 09:22
13 juin 2008 à 09:22
je me suis peut etre mal exprimé mais oui tu a bien compri chaque question possède sa zone 'autre' individuelle .
donc si j'ai bien compri ill faut que passe en paramètre une valeur qui varie a chaque question
j'ai essayer ca :
echo " <SELECT size=1 onchange='RendVisibleAutre(this.value,autre_reponse".$i.")' name='reponse".$nbQuestion."'> ";
foreach ($lResult4 as $row4)
{
//affichage des reponse possible dasn option
$reponse=$row4['id_reponse'];
echo "\n".'<option value='.$row4['id_reponse'].'>';
echo $row4['intitule_reponse'];
//echo $reponse;
echo '</option>';
echo "<option value='autre'>autre</option></SELECT>";
}
echo "<p><div id='autre_reponse".$i."' style=\"visibility:hidden;position:absolute;\">";
?>
<input type="text" name='autre<?echo $i;?>'></div>
</p>
mais ca ne fonctionne pas car je ne c pas comment passer la valeur de la variable $i de php dans la fonction js . voici cette fonction :
<script language="javascript">
function RendVisibleAutre(texte)
{
if (texte=="autre")
document.getElementById("autre_reponse").style.visibility= 'visible';
else
document.getElementById("autre_reponse").style.visibility= 'hidden';
}
</script>
merci :)
donc si j'ai bien compri ill faut que passe en paramètre une valeur qui varie a chaque question
j'ai essayer ca :
echo " <SELECT size=1 onchange='RendVisibleAutre(this.value,autre_reponse".$i.")' name='reponse".$nbQuestion."'> ";
foreach ($lResult4 as $row4)
{
//affichage des reponse possible dasn option
$reponse=$row4['id_reponse'];
echo "\n".'<option value='.$row4['id_reponse'].'>';
echo $row4['intitule_reponse'];
//echo $reponse;
echo '</option>';
echo "<option value='autre'>autre</option></SELECT>";
}
echo "<p><div id='autre_reponse".$i."' style=\"visibility:hidden;position:absolute;\">";
?>
<input type="text" name='autre<?echo $i;?>'></div>
</p>
mais ca ne fonctionne pas car je ne c pas comment passer la valeur de la variable $i de php dans la fonction js . voici cette fonction :
<script language="javascript">
function RendVisibleAutre(texte)
{
if (texte=="autre")
document.getElementById("autre_reponse").style.visibility= 'visible';
else
document.getElementById("autre_reponse").style.visibility= 'hidden';
}
</script>
merci :)
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
13 juin 2008 à 10:06
13 juin 2008 à 10:06
Tu dois biensur modifier cette fonction javascript par exemple de cette façon
Rien ne t'oblige à mettre une valeur de type String, c'est a dire entre guillemets dans le getElementById() comme par exemple :
document.getElementById("bonjour").style.visibility= 'visible';
Tu peux très bien lui donner une variable et il se débrouillera tout seul pour l'ouvrir :
document.getElementById(zone).style.visibility= 'visible';
Tu as bien compris tout le reste
<script language="javascript"> function RendVisibleAutre(texte,zone) { if (texte=="autre") document.getElementById(zone).style.visibility= 'visible'; else document.getElementById(zone).style.visibility= 'hidden'; } </script>
Rien ne t'oblige à mettre une valeur de type String, c'est a dire entre guillemets dans le getElementById() comme par exemple :
document.getElementById("bonjour").style.visibility= 'visible';
Tu peux très bien lui donner une variable et il se débrouillera tout seul pour l'ouvrir :
document.getElementById(zone).style.visibility= 'visible';
Tu as bien compris tout le reste
djoyanna
Messages postés
16
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2008
1
13 juin 2008 à 10:30
13 juin 2008 à 10:30
je suis désolé mais je ne compren pas (je connais aps dutou le javascript )
zone je le met ou dans mon code html?
et mon $i il me sert??? ou c inutil???
je suis vraiment déosolé mais je ne compren pas...
<script language="javascript">
function RendVisibleAutre(texte,zone)
{
if (texte=="autre")
document.getElementById("autre_reponse").style.visibility= 'visible';
else
document.getElementById("autre_reponse").style.visibility= 'hidden';
}
</script>
<?php
$i=0;
$i=i++;
...
echo "<SELECT size=1 onchange='RendVisibleAutre(this.value,autre_reponse".$i.")' name='reponse".$nbQuestion."'> ";
...
echo "<option value='autre'>autre</option></SELECT>";
?>
<p><div id='autre_reponse"<?echo $i?>"' style="visibility:hidden;position:absolute;">
<input type="text" name='autre'></div>
</p>
merci
zone je le met ou dans mon code html?
et mon $i il me sert??? ou c inutil???
je suis vraiment déosolé mais je ne compren pas...
<script language="javascript">
function RendVisibleAutre(texte,zone)
{
if (texte=="autre")
document.getElementById("autre_reponse").style.visibility= 'visible';
else
document.getElementById("autre_reponse").style.visibility= 'hidden';
}
</script>
<?php
$i=0;
$i=i++;
...
echo "<SELECT size=1 onchange='RendVisibleAutre(this.value,autre_reponse".$i.")' name='reponse".$nbQuestion."'> ";
...
echo "<option value='autre'>autre</option></SELECT>";
?>
<p><div id='autre_reponse"<?echo $i?>"' style="visibility:hidden;position:absolute;">
<input type="text" name='autre'></div>
</p>
merci
djoyanna
Messages postés
16
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2008
1
13 juin 2008 à 11:06
13 juin 2008 à 11:06
je crois avoir bien avancé
<?
$i=0;
$i++;
echo "<SELECT size=1 onchange='RendVisibleAutre(this.value,autre_reponse".$i.")' name='reponse".$nbQuestion."'> ";
...
echo "<option value='autre'>autre</option></SELECT>";
?>
<p><div id='autre_reponse<?=$i?>' style="visibility:visible;position:absolute;">
<input type="text" name='autre<?=$i?>'></div>
</p>
<script>
function RendVisibleAutre(texte,autre_reponse)
{
if (texte=="autre")
document.getElementById(autre_reponse).style.visibility= 'visible';
else
document.getElementById(autre_reponse).style.visibility= 'hidden';
}
</script>
si j'ai bien compri il ne me manque plus qu'à passer la valeur de $i dans ma fonction 'RendVisibleAutre(this.value,autre_reponse".$i.")'
c'est bien ca???
si oui comment svp???
merci
<?
$i=0;
$i++;
echo "<SELECT size=1 onchange='RendVisibleAutre(this.value,autre_reponse".$i.")' name='reponse".$nbQuestion."'> ";
...
echo "<option value='autre'>autre</option></SELECT>";
?>
<p><div id='autre_reponse<?=$i?>' style="visibility:visible;position:absolute;">
<input type="text" name='autre<?=$i?>'></div>
</p>
<script>
function RendVisibleAutre(texte,autre_reponse)
{
if (texte=="autre")
document.getElementById(autre_reponse).style.visibility= 'visible';
else
document.getElementById(autre_reponse).style.visibility= 'hidden';
}
</script>
si j'ai bien compri il ne me manque plus qu'à passer la valeur de $i dans ma fonction 'RendVisibleAutre(this.value,autre_reponse".$i.")'
c'est bien ca???
si oui comment svp???
merci
djoyanna
Messages postés
16
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2008
1
13 juin 2008 à 11:19
13 juin 2008 à 11:19
petite erreur je pense
<?
...
echo "<SELECT size=1 onchange='RendVisibleAutre(this.value,autre".$i.")' name='reponse".$nbQuestion."'> ";
...
echo "<option value='autre".$i."'>autre</option></SELECT>";
?>
<p><div id='autre_reponse<?=$i?>' style="visibility:hidden;position:absolute;">
<input type="text" name='autre<?=$i?>'></div>
</p>
<?
...
echo "<SELECT size=1 onchange='RendVisibleAutre(this.value,autre".$i.")' name='reponse".$nbQuestion."'> ";
...
echo "<option value='autre".$i."'>autre</option></SELECT>";
?>
<p><div id='autre_reponse<?=$i?>' style="visibility:hidden;position:absolute;">
<input type="text" name='autre<?=$i?>'></div>
</p>
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
13 juin 2008 à 12:19
13 juin 2008 à 12:19
c'est une erreur sans en être une, car le php est tellement permissif qu'il autorise les inclusions de variables sans fermer et réouvrir les guillemets, quelle horreur pour les puristes du Java et C :)
oui tu as bien tout compris, à mon avis tu as juste un petit soucis pour faire la distinction entre une valeur et une variable. A ta place je ne nommerai pas la variable autre_reponse car cela porte à confusion pour le programmeur.
Je reprends donc le code que tu viens de poster :
Voila j'espère que c'est un peu plus clair, en tout cas tu es sur la bonne piste, ne m'en veux pas si ces explications paressent un peu 'neu-neu' c'est pour essayer d'être clair
oui tu as bien tout compris, à mon avis tu as juste un petit soucis pour faire la distinction entre une valeur et une variable. A ta place je ne nommerai pas la variable autre_reponse car cela porte à confusion pour le programmeur.
Je reprends donc le code que tu viens de poster :
01 <?PHP 02 $i=0; 03 $i++; 04 echo "<SELECT size=1 onchange='RendVisibleAutre(this.value , autre_reponse_".$i." )' name='reponse".$nbQuestion."'> "; 05 06 // ici la version html finale de cette ligne donnera : 07 //<SELECT size=1 onchange='RendVisibleAutre(this.value , autre_reponse_1 )' name='reponse1'> 08 ... 09 echo "<option value='autre'>autre</option></SELECT>"; 10 11 //ici je prefere prolonger la balise PHP jusqu'en bas, car perso, je trouve ça brouillon de mélanger html et php 12 //pour echaper les guillemets on utilise un anti-slash \ 13 14 echo "<p><div id='autre_reponse_".$i."' style=\"visibility:visible;position:absolute;\">"; 15 //ici, on concatène le nom du div avec le $i pour qu'il ait exactement le même nom que celui envoyé en paramètre au javascript à la ligne 4 16 echo "<input type=\"text\" name='autre'></div>"; 17 echo "</p>"; // à présent voyons le Javascript, je vais utiliser des nom de paramètres qui n'ont rien à voir avec le contenu des variables, et cela n'empèchera pas du tout le programme de fonctionner, c'est pour que tu puisse bien faire la distinction. <script> function RendVisibleAutre( parametre1 , parametre2 ) { if ( parametre1=="autre" ){ document.getElementById( parametre2 ).style.visibility= 'visible'; } else{ document.getElementById( parametre2 ).style.visibility= 'hidden'; } } </script>
Voila j'espère que c'est un peu plus clair, en tout cas tu es sur la bonne piste, ne m'en veux pas si ces explications paressent un peu 'neu-neu' c'est pour essayer d'être clair
djoyanna
Messages postés
16
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2008
1
13 juin 2008 à 16:08
13 juin 2008 à 16:08
salut
je viens de voir ta reponse car je venai justement te dire que javai trouvé la soluution.
merci beaucoup c exactement de cette maniere que je my suis prise. c'est grace a firebug que jai compris le principe du passage des variable . jai di bidouillé qlq truc mais au final ca fonction :)
par contre me voici confronté a un autre soucis : c'est l'enregistement du contenu de ce champ text "autre". comment puije récupéré sa valeur ?? en post ca ne fonctionne pas
:(
<label><div id="test<? echo $j; $j++;?>" style="visibility:hidden">
<input type="text" name="autre2">
</div></label>
</p>
$id=$_POST["recherche2"];
$autre=$_POST['autre'];
if (!empty($_POST["ValideReponse"]))
{ for($x = 1; $x < $nbQuestion+1; $x++ )
{
$lCoupon->AddReponse($id,$x,$_POST['reponse'.$x.''],$autre);
echo '<SCRIPT LANGUAGE="JavaScript">document.location.href="question_fin.php"</SCRIPT>';
}}
este ce que je dois également lui donner un nom unique ???
merci :)
je viens de voir ta reponse car je venai justement te dire que javai trouvé la soluution.
merci beaucoup c exactement de cette maniere que je my suis prise. c'est grace a firebug que jai compris le principe du passage des variable . jai di bidouillé qlq truc mais au final ca fonction :)
par contre me voici confronté a un autre soucis : c'est l'enregistement du contenu de ce champ text "autre". comment puije récupéré sa valeur ?? en post ca ne fonctionne pas
:(
<label><div id="test<? echo $j; $j++;?>" style="visibility:hidden">
<input type="text" name="autre2">
</div></label>
</p>
$id=$_POST["recherche2"];
$autre=$_POST['autre'];
if (!empty($_POST["ValideReponse"]))
{ for($x = 1; $x < $nbQuestion+1; $x++ )
{
$lCoupon->AddReponse($id,$x,$_POST['reponse'.$x.''],$autre);
echo '<SCRIPT LANGUAGE="JavaScript">document.location.href="question_fin.php"</SCRIPT>';
}}
este ce que je dois également lui donner un nom unique ???
merci :)
alexdelareunion
Messages postés
545
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2023
142
14 juin 2008 à 01:25
14 juin 2008 à 01:25
Je ne suis pas super calé en formulaire mais d'après ce que je crois me souvenir, c'est bien l'attribut "name=" qui permet de distinguer les forms les uns des autres
19 mai 2008 à 12:59
merci pour votre reponse, je sais que c comme ca que je dois faire mais le probleme que je peux pas parce que
dans la fonction il appele seulement le champ qui a le name=txprorata et dans le form qui a le name=AP02
var x=document.AP02.TxProrata.value
alors les autres champs n'ont pas le meme nom.
et merci en toucas