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 :

Interaction PHP et Javascript


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut Interaction PHP et Javascript
    Bonjour,

    j'ai un bouton radio qui lors du click change le contenu d'une div via une fonction ajax:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="makeRequest('sections/preferences-style-preview.php?color=<?php echo $dir?>','image_preview')" />
    La valeur de dir change en fonction du bouton radio. J'aimerais ajouter dans ce lien ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="makeRequest('sections/preferences-style-preview.php?color=<?php echo $dir?>','image_preview')&background=document.getElementByName('a').checked" />
    En gros je veux que mon lien change en fonction d'un autre formulaire de boutons radios, en allant chercher la valeur du bouton radio coché dans l'autre formulaire. est-ce possible? suis-je près du but?

    merci d'avance

  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 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    oui mais faut concaténer ta requête ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="makeRequest('sections/preferences-style-preview.php?color=<?php echo $dir?>','image_preview')&background='+document.getElementByName('a').checked;" />
    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 régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    ok, mais je n'arrive pas ç faire marcher, je dois avoir un problème de syntaxe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="makeRequest('sections/preferences-style-preview.php?color=<?php echo $dir?>&background='+document.getElementByName('background').checked;'+,'image_preview')" />

  4. #4
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="makeRequest('sections/preferences-style-preview.php?color=<?php echo $dir?>&background='+document.getElementByName('background').checked;'+,'image_preview')" />
    A vue de nez, je dirais plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="makeRequest('sections/preferences-style-preview.php?color=<?php echo $dir?>&background='+document.getElementByName('background').checked+image_preview)" />
    Si image_preview est bien une variable javascript

    Edit : pardon, mon nez me trouble... plutot ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="makeRequest('sections/preferences-style-preview.php?color=<?php echo $dir?>&background='+document.getElementByName('background').checked,'image_preview');" />

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    oui image_preview est une variable javascript mais de ma fonction makerequest(c'est mon deuxieme paramètre), ça ne marche donc pas

  6. #6
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Oui, j'ai compris après, c'est pour ça que j'ai edité.

    Les quotes autour de image_preview, c'est parceque j'ai cru que c'etait une chaine, sinon faut les enlever

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    image_preview est une variable correspondant à une div sur ma page, donc je suppose qu'il faut les laisser.


    arf ça ne marche toujours pas, voici le code d'erreur javascript:
    cet objet ne gère pas cette propriété ou cette méthode.

  8. #8
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Ben fais voir un peu plus de ton code, sinon ça va etre dur de t'aider...

    Au moins la fonction makeRequest

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    voici ma fonction makerequest:
    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
    function makeRequest(url, doc) {
     
            var httpRequest = false;
     
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                httpRequest = new XMLHttpRequest();
                if (httpRequest.overrideMimeType) {
                    httpRequest.overrideMimeType('text/xml');
                    // Voir la note ci-dessous à propos de cette ligne
                }
            }
            else if (window.ActiveXObject) { // IE
                try {
                    httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e) {
                    try {
                        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e) {}
                }
            }
     
            if (!httpRequest) {
                alert('Abandon :( Impossible de créer une instance XMLHTTP');
                return false;
            }
            httpRequest.onreadystatechange = function() { alertContents(httpRequest, doc); };
            httpRequest.open('GET', url, true);
            httpRequest.send(null);
     
        }
     
        function alertContents(httpRequest, doc) {
     
            if (httpRequest.readyState == 4) {
                if (httpRequest.status == 200) {
    				document.getElementById(doc).innerHTML=httpRequest.responseText;
                } else {
                    alert('Un problème est survenu avec la requête.');
                }
            }
     
        }
    et mon input:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="radio" name="color" id="color_<?php echo $dir?>" value="<?php echo $dir?>" 
     
    								onClick="makeRequest('sections/preferences-style-preview.php?color=<?php echo $dir?>&background='+document.getElementByName('background').checked,'image_preview');" />

  10. #10
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Hum, je vois pas trop, parceque là, ça m'a l'air correct comme code...

    T'as bien un element qui accepte le innerHTML (DIV ou autre) dont l'ID est "image_preview" ?

    Tu peux charger ta page et faire "Afficher la source" histoire de voir si ton PHP est interpreté correctement ?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par buzzkaido
    Hum, je vois pas trop, parceque là, ça m'a l'air correct comme code...

    T'as bien un element qui accepte le innerHTML (DIV ou autre) dont l'ID est "image_preview" ?
    Oui

    Citation Envoyé par buzzkaido
    Tu peux charger ta page et faire "Afficher la source" histoire de voir si ton PHP est interpreté correctement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" name="color" id="color_blue" value="blue" 			onClick="makeRequest('sections/preferences-style-preview.php?color=blue&background='+document.getElementByName('background').checked,'image_preview');" />

    A noté que ça marche avec mon ancienne version qui ne va pas chercher mon élément background donc le problème viendrait plutot de la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="makeRequest('sections/preferences-style-preview.php?color=grey','image_preview')"

  12. #12
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Et si essaye avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" name="color" id="color_blue" value="blue" onClick="makeRequest('sections/preferences-style-preview.php?color=blue&background=true','image_preview');" />
    Codé "en dur" dans la page, sans PHP ?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    codé en dur, ça marche

  14. #14
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    L'erreur vient de là :

    document.getElementByName('background').checked

    Ton element "background" ne doit pas avoir de proprieté "checked"...

    C'est quoi comme tag ?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    c'est un bouton radio. Je me suis trompé je veux récupérer la valeur du bouton radio coché. cependant meme en mettant .value ça ne marche pas...

  16. #16
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Les boutons radio fonctionnent par groupe :

    Tu leur donne tous le meme "NAME" et ensuite tu peux recuperer à travers form.name.value la valeur de celui qui est coché.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    Je vois le genre, j'ai créer une fonction qui me récupère la valeur du bouton radio coché:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	function recupradio()
    	{
    		for(i=0,i<=2,i++)
    		{
    			if(document.form_style.background[i].checked)
    			{
    				Var Recup=document.form_style.background[i].value;
    			}	
    		}
    		return Recup;
    	}
    et je l'appelle ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="makeRequest('sections/preferences-style-preview.php?color=<?php echo $dir?>&background='+recupradio(); ,'image_preview');" />
    c'est ça?

  18. #18
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Ca, ça doit marcher.

    Mais tu dois aussi pouvoir faire :

    recup = document.form_style.background.value;

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    aie çe me met malheureusement des erreurs du genre "," ou "(" manquante

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    c'est bon, ça marche!

    MERCI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. interaction php et javascript
    Par awalter1 dans le forum Langage
    Réponses: 0
    Dernier message: 22/04/2012, 10h47
  2. [DOM] Interaction entre PHP et Javascript
    Par Calvein dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 23/12/2008, 11h49
  3. [PHP-JS] interaction entre php et javascript
    Par gabay dans le forum Langage
    Réponses: 5
    Dernier message: 21/08/2008, 12h12
  4. Réponses: 7
    Dernier message: 15/11/2006, 14h23
  5. [PHP-JS] Interaction PHP / Javascript
    Par vivian dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2006, 23h56

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