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

AJAX Discussion :

[AJAX] Javacript & PHP dans le même document


Sujet :

AJAX

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut [AJAX] Javacript & PHP dans le même document
    Bonjour,

    Pardonnez-moi pour le titre pas trop clair...
    en fait je recherche à interroger une base de données avec de l'Ajax
    mais sans passer par une page PHP en parallèle à la page où se situe
    le script JS qui exécute la requête...

    Je veux que le script JS et le script PHP qui est lis la base de données
    soit dans le même fichier, le but étant que la requête ne passe pas
    par une URL pour palier à un problème du à la réécriture d'URL.

    Si c'est possible, je serai ravi d'avoir la méthode

    Merci d'avance pour vos réponses,

    MICKAEL

  2. #2
    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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Déjà, c'est une très mauvaise façon de procéder, mais c'est malgré tout possible, il suffit de passer un paramètre par exemple qui indiquera à ton script PHP s'il faut renvoyer la page complète ou s'il s'agit d'une interrogation AJAX.

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    merci pour la réponse,

    passer un paramètre par exemple qui indiquera à ton script PHP s'il faut renvoyer la page complète ou s'il s'agit d'une interrogation AJAX
    Comment procéder ??

    Voici le code qui fait la requête :

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <script type="text/javascript">
     
    function getXhr(){
                                    var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr;
    			}
     
    			/*
    			Méthode appelée lors du changement d'état du Sélecteur
    			*/
     
     
    			// Récupération des Pays en fonction de la Catégo
    			function read_pay(){
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						list_pay = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('filtrepay').innerHTML = '<option value="">Sélectionner un Pays</option>' + list_pay;
    					}
    				}
    				// Envoie des données via Post
    				xhr.open("POST","rep_gmafp_ajax.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// Définir les variable utilisée en tant qu'arguement :
    				var $catego = document.getElementById("filtrecatego").value;
    				//idauteur = sel.options[sel.selectedIndex].value;
    				xhr.send("catego="+$catego);
    			}
     
     
    </script>
    c'est une très mauvaise façon de procéder
    Alors comment je pourrais faire pour palier à mon problème ??

  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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Comment procéder ??
    Euh...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.send("catego="+$catego+"&mode=ajax");
    par exemple...

    Alors comment je pourrais faire pour palier à mon problème ??
    Rectifie ta réécriture d'URL au lieu de contourner le problème avec des solutions pas très propres.

  5. #5
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    Rectifie ta réécriture d'URL au lieu de contourner le problème avec des solutions pas très propres.
    Ben ça justement je ne sais pas faire...

    J'ai déjà cherché à plusieurs reprises, en vain, comment
    faire des exception au niveau de la réécriture d'URL, mais je n'ai jamais trouvé de solution, si vous la connaissez ce serait une bonne occasion pour l'apprendre...

    xhr.send("catego="+$catego+"&mode=ajax");
    et c'est tous ce que j'ai à modifier ??

    Je test ça ce soir et je vous retient au courant, en attendant merci
    pour votre aide.

    MICKAEL

  6. #6
    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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    et c'est tous ce que j'ai à modifier ??
    Ben pas vraiment, ensuite il faudra gérer les différentes situations possibles du coté de PHP...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if(isset($_POST['mode'] && $_POST['mode'] == 'ajax'){
        // Traitement dans le cas d'un appel AJAX
    }
    else{
        // Traitement normal de la page
    }
    ?>

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/05/2009, 09h48
  2. Réponses: 9
    Dernier message: 04/10/2007, 12h15
  3. [Débutant] [XSLT] CSS et XSL dans le même document
    Par sidahmed dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 24/09/2007, 03h52
  4. [XSL~FO] 2 Pages de garde différents dans un même document
    Par Maximus32 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 02/03/2007, 10h07
  5. [Système] exécuter fonction php dans la même page ?
    Par AzertyH dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2006, 10h01

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