begin process at 2012 05 29 19:02:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

novice JS : sos appel de fonction JS par fonction php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

novice JS : sos appel de fonction JS par fonction php

lundi 18 février 2008 à 13:58:03 | novice JS : sos appel de fonction JS par fonction php

M000004965

Bonjour,

(je suis débutant en PHP et donc une vraie quiche en JS...)

voila, j'ai un formulaire avec des critères de filtres en plusieurs listes (pas de prblème)
j'ai le résultat issu des critères de filtres. Ce résultat est présenté dynamiquement sous forme de checkbox avec id.
et un bouton de commande appelé "Generer".

<script type="text/javascript">
<--
function Detail_Demande()
{
    Element_Liste1 =   [document.filtres.liste1.selectedIndex].value;
       with (document.Resultats)
       {
         for (u = 0; u < ChkResult.length; u++)
         if (ChkResult[u].checked = = true)
             {
                   Element_Chk = [document.Resultats.ChkResult.].value;
                   fusion = Element_Liste1+Element_Chk;
                   document.lstdemande.value = fusion;  comment je force un retour à la ligne dans ma zone de texte
             }
       }
}
-->
</script>

echo '<form method="post" name="Filtres" action="">';
          echo 'Liste1<br><select name="liste1">';
            echo '<option id="0" value="-" selected>NC</option>';
            echo '<option id="1" value="prod">Choix1</option>';
            echo '<option id="2" value="Test">Choix2</option>';
            echo '<option id="3" value="Test">Choix3</option>';
            echo '<option id="4" value="Test">Choix4</option>';
          print "</select><br><br>";
echo '</form>';

echo '<form method="post" name="Resultats" action="">';
echo '<INPUT TYPE="checkbox" NAME="ChkResult" id="1" value="toto1">';
echo '<INPUT TYPE="checkbox" NAME="ChkResult" id="2" value="toto2" checked>';
echo '<INPUT TYPE="checkbox" NAME="ChkResult" id="3" value="toto3">';
echo '<INPUT TYPE="checkbox" NAME="ChkResult" id="4" value="toto4" checked>';
echo '<br><br>';
echo '<input name="generer" type="Submit" value="Generer" onClick="Detail_Demande()">

echo '</form>';

// Zone de texte vérouillée pour afficher toutes les possibilités
// Soit : 4 entrées de la liste1 * n entrées chreckbox cochées
echo '<TEXTAREA NAME="lstdemande" ROWS="5" COLS="50" READONLY>';
echo '</TEXTAREA><br><br>';

Comment je peux faire pour que ma fonction prenne toutes les entrées de la liste1 et les associent à toutes les entrées checkbox cochées et les écrire ligne par ligne dans ma zone de texte
Mon code ne fonctionne pas et je ne comprend pas pourquoi.

D'avance merci

Autodidact, je ne demande qu'à apprendre... Merci de votre aide
lundi 18 février 2008 à 14:04:23 | Re : novice JS : sos appel de fonction JS par fonction php

M000004965

OUPSSS ! excusez,

le titre n'est plus vraiment en adéquation avec la question, mais comme je cherche en permanence, je change tout le temps pour essayer de solutionner....

désolé

Autodidact, je ne demande qu'à apprendre... Merci de votre aide
lundi 18 février 2008 à 14:17:18 | Re : novice JS : sos appel de fonction JS par fonction php

bultez

Membre Club


Bonjour,

    franchement : à quoi sert le php ici ? ( où alors, c'est un extrait pour nous montrer )
          mais s'il n'y a pas de $variables... les echo 'html ou javascript' sont inutiles

    il y a plusieurs erreurs de syntaxe ( php et javascript )
    les voici corrigés ( pas toutes ! voir ma remarque en fin )
    il manque aussi var très souvent,
       ce qui fait qu'on utlise des variables globales... inutiles


<script type="text/javascript">
function Detail_Demande()
{
    Element_Liste1 =  document.Filtres.liste1.options[document.Filtres.liste1.selectedIndex].value;
       with (document.Resultats)
       {
         for (u = 0; u < ChkResult.length; u++)
         if (ChkResult[u].checked == true)
             {
                   Element_Chk = document.Resultats.ChkResult.value;
                   fusion = Element_Liste1 + Element_Chk;
                   document.getElementById("lstdemande").value = fusion;  //comment je force un retour à la ligne dans ma zone de texte
             }
       }
}
</script>

<form method="post" name="Filtres" action="">
         Liste1<br>
            <select name="liste1">
         <option id="0" value="-" selected>NC</option>
         <option id="1" value="prod">Choix1</option>
         <option id="2" value="Test">Choix2</option>
         <option id="3" value="Test">Choix3</option>
         <option id="4" value="Test">Choix4</option>
          </select><br><br>
</form>

<form method="post" name="Resultats" action="">

<INPUT TYPE="checkbox" NAME="ChkResult" id="1" value="toto1">
<INPUT TYPE="checkbox" NAME="ChkResult" id="2" value="toto2" checked>
<INPUT TYPE="checkbox" NAME="ChkResult" id="3" value="toto3">
<INPUT TYPE="checkbox" NAME="ChkResult" id="4" value="toto4" checked>
<br><br>
<input name="generer" type="Submit" value="Generer"  onClick="Detail_Demande(); return false;">

</form>

// Zone de texte vérouillée pour afficher toutes les possibilités
// Soit : 4 entrées de la liste1 * n entrées chreckbox cochées
<TEXTAREA id="lstdemande" ROWS="5" COLS="50" READONLY>
</TEXTAREA><br><br>



                   Element_Chk = document.Resultats.ChkResult.value;
    certes... mais lequel ?   il y en a 4...



                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 18 février 2008 à 14:20:36 | Re : novice JS : sos appel de fonction JS par fonction php

bultez

Membre Club
les erreurs php sont signalées dans ce qu'il génère,
coté html/javascript :


¡--------¡----------------------------------------------------------¡
|FireFox |regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
| | |
| | et mieux, télécharger FireBug |
|--------|----------------------------------------------------------|
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | ° Afficher une notification de chaque erreur de script |
| | ° Désactiver le débogage de Scripts (Internet Explorer) |
| | |
| | et mieux, télécharger le Debogger IE |
|--------|----------------------------------------------------------|
|K-Meleon|regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
|--------|----------------------------------------------------------|
|Opera |regarder la "console d'erreurs" |
| | Outils / Avancé / Console d'erreurs |
|--------|----------------------------------------------------------|
|Safari |regarder Debug / Show JavaScript Console |
| | |
| |modif Fichier "Support:\Documents and Settings\utilisateur|
| |\Application Data\Apple Computer\Safari\Preferences.plist"|
| | y ajouter <key>IncludeDebugMenu</key> |
| | <true/> |
!--------!----------------------------------------------------------!


                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 18 février 2008 à 14:27:59 | Re : novice JS : sos appel de fonction JS par fonction php

bultez

Membre Club
on fera d'autres remarques après...
du style     pourquoi with et ne pas utiliser ?
                 pourquoi onclick sur un bouton submit, alors que onsubmit sur le form est là pour ça ....

                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 18 février 2008 à 15:04:01 | Re : novice JS : sos appel de fonction JS par fonction php

M000004965

wow !

merci bul, toujour fidel au post, en effet, ce script est pour exemple de situation.

Effectivement ! : Element_Chk = document.Resultats.ChkResult.value;
    certes... mais lequel ?   il y en a 4...

je corige avec :


Element_Chk = document.Resultats.ChkResult[u].value;

j'essai et je te fait un retour, merci pour ton aide

laisse moi un peu de temps, il faut que je transpose vis à vis de mon vrai code.

pour le déclaratif des variables en JS , je me documente sur le sujet

pour quoi
:
onClick="Detail_Demande();return false;"
au cas où aucune checkbox ne serai cochée

J'en conclus, qu'en JS, il est toujours préférable de faire
référence à un objet par son ID plutôt que par son NOM ?!


C'est presque good ! merci !!!

ci dessous le code:

<script type="text/javascript">
function Detail_Demande()
{
    Element_Liste1 =  document.Filtres.liste1.options[document.Filtres.liste1.selectedIndex].value;
       with (document.Resultats)
       {
         for (u = 1; u < ChkResult.length; u++)
         if (ChkResult[u].checked == true)
             {
                   Element_Chk = document.Resultats.ChkResult[u].value;
                   fusion = Element_Liste1 + " - " + Element_Chk;
                   document.getElementById("lstdemande").value = fusion;  //comment je force un retour à la ligne dans ma zone de texte
             }
       }
}
</script>

<form method="post" name="Filtres" action="">
         Liste1<br>
            <select name="liste1">
         <option id="0" value="-" selected>NC</option>
         <option id="1" value="Choix1">Choix1</option>
         <option id="2" value="Choix2">Choix2</option>
         <option id="3" value="Choix3">Choix3</option>
         <option id="4" value="Choix4">Choix4</option>
          </select><br><br>
</form>

<form name="Resultats" action="">

<INPUT TYPE="checkbox" NAME="ChkResult" id="1" value="toto1">toto1
<INPUT TYPE="checkbox" NAME="ChkResult" id="2" value="toto2" checked>toto2
<INPUT TYPE="checkbox" NAME="ChkResult" id="3" value="toto3">toto3
<INPUT TYPE="checkbox" NAME="ChkResult" id="4" value="toto4" checked>toto4
<br><br>
<input name="generer" type="Submit" value="Generer"  onClick="Detail_Demande(); return false;">

</form>

<TEXTAREA id="lstdemande" ROWS="5" COLS="50" READONLY>
</TEXTAREA><br><br>

ça fonctionne sauf qu'il ne me met que la dernière checkbox cochée.

exemple si list1 = Choix2
et
checkbox cochée = 2 et 4

il n'écrit que Choix2 - toto4

alors que le résultat devrai être
Choix2 - toto2
Choix2 - toto4

c'est à dire deux ligne dans ma TEXTAREA id="lstdemande"

pour mon histoire de retour à la ligne dans la TEXTAREA , est-ce qu'un  /n  se serai bon ? (du genre:)

document.getElementById("lstdemande").value = fusion + "/n";   //comment je force un retour à la ligne dans ma zone de texte

j'était pas si loin de la vérité non

Autodidact, je ne demande qu'à apprendre... Merci de votre aide
lundi 18 février 2008 à 15:36:11 | Re : novice JS : sos appel de fonction JS par fonction php

bultez

Membre Club
Réponse acceptée !


onClick="Detail_Demande();return false;"
    sinon le formulaire est transmis ( ici à la même page )
        , et on ne voit pas ce qu'il y a dans le textarea puisque réffiché.
   
>>au cas où aucune checkbox ne serai cochée
    faire un test
    mais dans <form onsubmit="return (
Detail_Demande());"...>
             et dans le bouton submit enlever le onclick
       si cette fonction retourn false, le formulaire n'est pas transmis.
                                           true   il l'est

>>il est toujours préférable de faire
référence à un objet par son ID plutôt que par son NOM ?!
    euh... ben non.
    c'est en général plus simple pour répondre, c'est tout.
    avec le php, ne sont transmis que les value éléments qui ont un name
          alors pourquoi ajouter un id, dans ce cas ?
          perso je préfère nettement document.name_formulaire.name_élément
          ( avec IE, name_element suffirait mais avec FF, il faut tout lui dire )
          mais chacun ses goûts, et les vaches sont bien gardées.

>>
pour le déclaratif des variables en JS
    s'il n'y a pas de var, ou un var hors des fonctions, ce sont des variables globales
    var dans une foncion : locales   et c'est plus mieux (?)


   
for (u = 0; u < document.Resultats.ChkResult.length; u++)
       ça devrait le faire




                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 18 février 2008 à 15:38:22 | Re : novice JS : sos appel de fonction JS par fonction php

bultez

Membre Club

pas répondu à tout   :o(

document.getElementById("lstdemande").value = fusion + "\r\n"; 
    ( le \r ou le \n ? est utile uniquement pour IE.... je crois )

>>j'était pas si loin de la vérité non

    effectivement.


                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 18 février 2008 à 16:32:13 | Re : novice JS : sos appel de fonction JS par fonction php

M000004965

ok ok lol

j'en était un peu loin...

mais merci, j'ai apris pleins de choses !

il ne me reste plus qu'à trouver la solution du retour à la ligne dans ma zone de texte
Quand je rajoute /r/n il me le met dans le texte
que je fasse 1 seul (/n ou /r), que je les inverses ou que je soit sous IE ou FF, rien à faire il me les colles
j'ai :

Choix1 - toto2Choix1 - toto4/r/n

30 minutes plus tard ....

j'ai trouvé !!

                Element_Chk = document.Resultats.ChkResult[u].value;
                fusion = fusion + Element_Liste1 + " - " + Element_Chk + "\r\n";
                document.getElementById("lstdemande").value = fusion;

UN GRAND MERCI A BULTEZ !!!

Pour ceux qui serai intéressé à l'avenir je post la solution complète testée sous IE et FF

Autodidact, je ne demande qu'à apprendre... Merci de votre aide
lundi 18 février 2008 à 16:36:49 | Re : novice JS : sos appel de fonction JS par fonction php

M000004965

Réponse acceptée !
La soluce complète avec tous mes remerciements à Bultez et à Codes-Sources

<script type="text/javascript">
function Detail_Demande()
{
var Element_Liste1;
var Element_Chk;
var fusion;

fusion = "";

    Element_Liste1 =  document.Filtres.liste1.options[document.Filtres.liste1.selectedIndex].value;
       with (document.Resultats)
       {
         for (u = 0; u < ChkResult.length; u++)
         {

           if (ChkResult[u].checked == true)
             {

                Element_Chk = document.Resultats.ChkResult[u].value;
                fusion = fusion + Element_Liste1 + " - " + Element_Chk + "\r\n";
                document.getElementById("lstdemande").value = fusion;

             }
           }
       }
}
</script>

<form method="post" name="Filtres" action="">
         Liste1<br>
            <select name="liste1">
         <option id="0" value="-" selected>NC</option>
         <option id="1" value="Choix1">Choix1</option>
         <option id="2" value="Choix2">Choix2</option>
         <option id="3" value="Choix3">Choix3</option>
         <option id="4" value="Choix4">Choix4</option>
          </select><br><br>
</form>

<form name="Resultats" action="">

<INPUT TYPE="checkbox" NAME="ChkResult" id="1" value="toto1">toto1
<INPUT TYPE="checkbox" NAME="ChkResult" id="2" value="toto2" checked>toto2
<INPUT TYPE="checkbox" NAME="ChkResult" id="3" value="toto3">toto3
<INPUT TYPE="checkbox" NAME="ChkResult" id="4" value="toto4" checked>toto4
<br><br>
<input name="generer" type="Submit" value="Generer"  onClick="Detail_Demande(); return false;">

</form>

<TEXTAREA id="lstdemande" ROWS="5" COLS="50" READONLY>
</TEXTAREA><br><br>

Autodidact, je ne demande qu'à apprendre... Merci de votre aide


Cette discussion est classée dans : checkbox, echo, value, liste1, chkresult


Répondre à ce message

Sujets en rapport avec ce message

ah ... ces checkbox .... [ par zilkyan ] bonjour !!!!!!!!! voilà g un petit souci : j'ai environ 18 checkbox, que l'on peut cliquer ou pas (logique non ? ), certaine on value ="1" et d'autre checkbox et value [ par gabs77 ] j ai un petit pb avec un checkboxje voudrais que si le checkbox est coché il retourne la valeur "O"sinon il retourne la valeur "N"et la il me retourne verification de checkbox [ par c_hippo ] Bonsoir,Voilà, j'ai un formulaire avec à la fois des boutons radio et des checkbox qui se répetent n fois.Pour valider le tout, j'ai un premier bouton Cocher Checkbox : ça marche sauf que... [ par M000004965 ] Bonsoir,Je sèche total sur une erreur que je ne vois pas :Voilà c'est simple, je crée un tableau dynamique avec des checkbox.Un bouton de commande coc desactivé le checkbox [ par lirvax ] Bonjour,je suis pas doué en javascript, et je suis confrenté à deux problemes :en fait je developpe en php, alros je commence par le premierlorsque je CheckBox avec valeurs differentes [ par sebsab2008 ] Bonjour,Voilà, j'ai un gros soucis avec les CheckBox. En effet, je souhaite récuperer la valeur du checkbox afin de mettre cette donnée dans une table selectionner seulement un groupe de checkbox [ par secchi ] bonjour, voila mon probleme j'ai une liste de checkbox afficher dynamiquement en php une liste correspond à un groupe1 à la suite une liste correspo Cocher des checkbox à la velue suivant leur value [ par mdc888 ] Salut à tous, Je suis assez débutant en js, aussi j'aurai besoin d'un conseil. J'ai un tableau avec des centaines de checkbox, genre : <input type Capture d'evenements checkbox sur tableau genere dynamiquement [ par eikichi ] Bonjour a tous, J'espère que vous serez indulgents concernant mon premier post sur ce forum, mais en l'ayant parcouru, je ne parviens toujours pas à Simple fonction de calcul [ par jebalialaeddinecpp ] Bojour, Pour un mini-projet en Mathématique j'ai besoin de faire un petit code en JS pour calculer la somme de plusieurs inputs... J'ai trouvé ce code


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales