IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Comment faire fonctionner du code javascript sur une page, lorsque celle-ci, fait appel à une autre page ?


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut Comment faire fonctionner du code javascript sur une page, lorsque celle-ci, fait appel à une autre page ?
    Bonjour,

    PS : le code JS fonctionne dans les 2 pages, mais séparément

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    je ne ne comprends pas le lien entre tes deux pages ... mère fille ? iframe ..; aute ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Merci pour votre réponse.
    Le lien entre les pages c'est cette ligne de la page 1 :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <h4 style="cursor:pointer" onclick="ajaxrequest('page_2', 'message')"><u>Rechercher</u></h4>

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Il va falloir commencer par expliquer clairement ton problème, parce que là, ça relève plus de la télépathie qu'autre chose pour comprendre ce que tu veux faire.
    Ensuite, il faudra montrer un peu plus de code qu'un simple appel de fonction...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bonjour à tous

    Eh bien je crois comprendre que la fonction ajaxrequest() doit se trouver quelque part dans le code de la page 1;

    le code JS fonctionne dans les 2 pages, mais séparément
    Là je sèche;

  6. #6
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    La fonction Javascript permet de faire apparaître/disparaître le champ 'sépulture' d'après la valeur du champ 'état' : si la valeur du champ etat="2" alors le champ 'sépulture apparaît', sinon il n'apparaît pas.
    Voici des fragments de code des pages :
    Code de la page 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <script>
    $(window).load(function () {
         $(document).ready(function () {
    	$('#sepulture_section').hide();
     
    	$('#etat').on('change', function() {
    		if($(this).val() === '2') {
    			$('#sepulture_section').show();
    		} else {
    			$('#sepulture_section').hide();
    		}
    	});
    });
     });
    // Ici le code de la fonction ajaxRequest
    /*-------*/
    </script>
    <body class="bg-red">
    		<div class="body">		
    			<form action="" id="sky-form2" class="sky-form" method="post" onsubmit="return muModal(this)">
    				<header>Catégorisation</header>
     
    				<fieldset>
    					<div class="row">	
    					<!--Nom contact -->
    						<section>
    							<label class="input">
    							<input type="text" name="id_struct" id="id_struct" placeholder="Nom du contact" onkeyup="autocomplet()">
    								<ul id="country_list_id"></ul>
    							</label>
    							<i></i>
     
    						</section>
    						<!--  Traitement -->
    					<h4 style="cursor:pointer" onclick="ajaxrequest('lecture_categorisation.php', 'message')"><u>Rechercher</u></h4>
     
    					<div id="message"></div>
    					<!--Fin -->
    					</div>
    				</fieldset>	
    </form></div></body>
    Page 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <section class="col col-6">
    	<label class="select">
    		<select id="etat" name="etat">
    			<OPTION VALUE="">Etat*</OPTION>';
    			while ($donnees3 = $reponse3->fetch(PDO::FETCH_ASSOC))
    				{if ($donnees3["id_etat"]==$etat)
    					echo '<OPTION VALUE="'.$donnees3["id_etat"].'" selected="selected">'.$donnees3["etat"].'</OPTION>';
    				else
    					echo '<OPTION VALUE="'.$donnees3["id_etat"].'">'.$donnees3["etat"].'</OPTION>';
    				} 
    echo		'</select>
    		<i></i>
    	</label>
    </section>
    <section id="sepulture_section" class="col col-6">
    	<label class="select">
    		<select id="sepulture" name="sepulture">
    			<OPTION VALUE="">Sépulture*</OPTION>';
    				while ($donnees4 = $reponse4->fetch(PDO::FETCH_ASSOC))
    				{if ($donnees4["id_sepulture"]==$sepulture)
    					echo '<OPTION VALUE="'.$donnees4["id_sepulture"].'" selected="selected">'.$donnees4["sepulture"].'</OPTION>';
    				else
    					echo '<OPTION VALUE="'.$donnees4["id_sepulture"].'">'.$donnees4["sepulture"].'</OPTION>';
    echo		'</select>
    		<i></i>
    </label>
    </section>

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Où est le problème?

  8. #8
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    @ javatwister:
    Oui, la fonction ajaxrequest se trouve dans la page 1.
    Le problème c'est que le champ 'sépulture' apparaît toujours, peu importe la valeur de etat (normalement il ne doit apparaître que si etat=2).

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    on ne sait toujours pas ce que renvoie ta requête ajax! est-ce bien l'état en question? et demandes-tu la mise à jour du champ? Où? Quand? Comment?

    Déjà que je ne comprend pas le onchange sur un élément qui se trouve dans une page distante...

  10. #10
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Code de la fonction ajaxrequest :
    LA fonction ajax gère le bouton Rechercher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
        function get_XmlHttp() {
          var xmlHttp = null;
     
          if(window.XMLHttpRequest) {        // Firefox, IE7+, Opera, Safari, ...
            xmlHttp = new XMLHttpRequest();
          }
          else if(window.ActiveXObject) {    // Internet Explorer 5 or 6
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
          }
     
          return xmlHttp;
        }
     
        function ajaxrequest(php_file, tagID) {
          var request =  get_XmlHttp();
          var id_struct = document.getElementById('id_struct').value;
    	var the_data = 'id_struct='+id_struct;
     
    	  request.open("POST", php_file, true);            
     
          request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
          request.send(the_data);
     
          request.onreadystatechange = function() {
            if (request.readyState == 4) {
              document.getElementById(tagID).innerHTML = request.responseText;
            }
          }
        }
    Alors lorsque je fais appel à ajax, je charge la page 2 qui contient plusieurs champs dont le champ etat et sépultures (qui sont des listes), ajax permet donc d'afficher ces champs.
    Qu'entendez-vous par mise à jour du champ ?

  11. #11
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Citation Envoyé par geeka Voir le message
    e charge la page 2 qui contient plusieurs champs dont le champ etat et sépultures (qui sont des listes), ajax permet donc d'afficher ces champs.
    Où affiches-tu ces champs??? Je n'ai vu aucune sépulture dans la page 1 (je ne pensais pas que j'écrirais ça un jour)

  12. #12
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    J'affiche ces champs sur la page 1. La page 2 n'est jamais affichée, elle est juste chargée.

  13. #13
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    "chargée" est un abus de langage mais bon, c'est le début de la sagesse;

    Mais où affiches-tu, dans ta page 1, "ces champs" dont tu parles? c'est invisible, dans ton code;

  14. #14
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Mais où affiches-tu, dans ta page 1, "ces champs" dont tu parles? c'est invisible, dans ton code;
    J'affiche ces champs à l'intérieur de la div :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     //Code de la Page 1
    <div id="message"> 
    //Mes champs chargés de la page 2
    </div>
    grâce à la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ajaxrequest('lecture_categorisation.php','message');
    donc il charge les champs de la page 2 nommée lecture_structure.php. (Ces champs ne sont pas écrit dans la page 1)

  15. #15
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    ton hide / show est illusoire: on dirait que tu veux afficher / cacher des données d'une page distante en espérant que le résultat apparaîtra sur ta page courante...

  16. #16
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Quelle solution vous me proposez, ?
    Que j'appelle le code Javascript de la page courante ou distante ne change rien, le contrôle ne marche pas. Selon moi, j'ai besoin de 2 pages, car je dois récupérer la valeur du champ à rechercher avec la méthode POST. Si c'était sur une seule page, le contrôle marche. Mais là, j'ai besoin de deux pages

  17. #17
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bon,

    1) comment est gérée la variable id_struct dans la page php?

    2) vérifie que "etat" change bien selon la valeur de idstruct;

    3) que veux-tu afficher dans ton champ message? un simple indice? la valeur d'un select?... parce que là, vus les echo imprécis, tu va récupérer tout et n'importe quoi avec responsetext;

  18. #18
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var arr = document.getElementById(tagID).getElementsByTagName('script')
    for (var n = 0; n < arr.length; n++)
        eval(arr[n].innerHTML)

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/08/2010, 09h13
  2. Réponses: 7
    Dernier message: 15/12/2006, 16h14
  3. Comment faire fonctionner une fenêtre Login
    Par Cazaux-Moutou-Philippe dans le forum WinDev
    Réponses: 3
    Dernier message: 29/10/2006, 12h00
  4. Comment faire fonctionner une scroll bar ???
    Par toto4650 dans le forum MFC
    Réponses: 10
    Dernier message: 18/07/2005, 16h47
  5. comment faire fonctionner l'exe sur une autre machine
    Par brian79 dans le forum C++Builder
    Réponses: 8
    Dernier message: 28/05/2004, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo