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 :

syntaxe onclick sur un div


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 74
    Par défaut syntaxe onclick sur un div
    Bon j'ai une question toute cone, j'ai une page .php je recupère des éléments de la base de données et je fais sa dessus:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    echo'<div Onclick="alert('yop');">'
    echo $donnees['nom_gamme'];?></div><br></div>
    <?php
    }
    ?>


    Seulement sa bloque tout et je tombe sur une page blanche quand je test... pbm de js non activé sur nav? impossible j'ai déjà fait plusieurs test sur d'autre truc le js etait lu, un oubli sur la page obligatoirement.... aidez moi!

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    il y a visiblement un gros problème de synatxe php pour commencer ....

    les balises <?php ?> ne sont pas coordonnées ...
    pareil pour les balises div ...
    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 chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Il y a en effet un problême au niveau de l'encapsulement des balises div dans le php. Quoi que ce ne soit pas sur. Il manque peut-être une ouverture de balise <div> plus haut et voila tout.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 74
    Par défaut
    j'ai reglé le pbm, voila:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div id="texte2"  Onclick="affichageprod(monTableauJs)";"cursor:pointer;"><br>-
    <?php
    echo $donnees['nom_gamme'];?><br></div>
    <?php
    }
    ?>

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Citation Envoyé par clara1 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <div id="texte2"  onclick="affichageprod(monTableauJs);">
        </br>-
        <?php
              echo $donnees['nom_gamme'];
        ?>
        </br>
    </div>
    <?php
        }
    ?>
    PAs vraiment d'idée du pourquoi ca marche pas à part peut etre :

    Cursor : pointer c'est du css ca non ? Mettre du css dans un onclick, je ne pense pas que cela se fasse comme cela...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 74
    Par défaut
    non erf t'as bien raison voila ma version finale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div id="texte2"  Onclick="affichageprod(monTableauJs);" style="cursor:pointer;"><br>-
    <?php
    echo $donnees['nom_gamme'];?><br></div>
    <?php
    }
    ?>
    *
    voila mal collé

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    ton $donnees['nomgamme'] existe bien et possède une valeur?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 74
    Par défaut
    ouép sa marche comme sa mais la je galère pour savoir comment parcourir un tableau en js...sa marche ce genre de fonction en js?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function miseajour(monTableauJs){
    		for($i = 0; $i < count(monTableauJs); $i++){
    		Element.update("menu2","<li>"+monTableauJs."[".$i."]".+"</li>");
    		}
    		}

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Deja je pense qu'il faut essayer d'éviter les signes $ dans du javascript, parce qu'on risque de tout melanger, ca c'est juste un avis personnel.

    Count existe en javascript d'ailleurs? c'est plutot une fonction php...

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function miseajour(monTableauJs){
    		for(i = 0; i < monTableauJs.length; i++){
    		Element.update("menu2","<li>"+monTableauJs[i]+"</li>");
    		}
    		}
    Sans préjuger de la pertinence du reste (pas suivi le début)

    A+

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 74
    Par défaut
    merci e buzz et bon tant qu'il y a des gens pour m'aider, je reste dans le même sujet ,'jai récupéré sur la faq une fonction me permettant de convertire un tableau php en js, voici le code de la fonction:

    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
     
    <?php
    function construisTableauJS($tableauPHP, $nomTableauJS){
       echo $nomTableauJS." = new Array();";
       for($i = 0; $i < count($tableauPHP); $i++){
          if(!is_array($tableauPHP[$i])){
             echo $nomTableauJS."[".$i."] = '".$tableauPHP[$i]."';";
          }
          else{
             construisTableauJS($tableauPHP[$i], $nomTableauJS."[".$i."]");
          }
       }
       return;
    }
    ?>
    Je l'ai mis dans ma page page1.php, et un peu plus loin d'effecute cette requête pour recuperer un tableauPHP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php   $res=mysql_query("SELECT * FROM Gamme ORDER BY nom_gamme");
             while ($donnees = mysql_fetch_array($res) )
                                            {
                                                    $id=$donnees['id_gamme'];
                                                    &recup=mysql_query("SELECT 'nom_produit' FROM Bose WHERE 'id_gamme'=".$id." ORDER BY nom_produit");
                                                    echo "<script type='text/javascript'>";
                                                    construisTableauJS($recup, "monTableauJS");
                                                    document.write(monTableauJS.toSource());
                                                    echo "</script> ";
     
                                                    
                                                    
    ?>
    Seulement voila le code sur la faq m'indique cela pour modifier un tableauPhp en JS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo "<script type='text/javascript'>";
    						construisTableauJS($recup, "monTableauJS");
    						document.write(monTableauJS.toSource());
    						echo "</script> "
    et je ne sais pas à quoi correspond le toSource ni même si je doit mettre la déclaration de la fonction et son exécution dans la même age tel que je l'ai fait.
    PS: veritable novice en js!

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    A priori si tu appelle un document.write dans du php ca ne va pas fonctionner, il faut porter une grande attention aux langages que tu utilises et aux parties correspondantes de ton code....

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 74
    Par défaut
    OK mais je ne comprends pas du tout a quoi sa correspond document.write dans ce sujet la,et quand jappelle la fonction contruisTabloJs, supposons que cet appel marche ce quin'est pas sur vu la déclaration byzarre, comment récupérer ce tabloJs pour le mettre dans ma fcontion affichageprod?

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par clara1 Voir le message
    supposons que cet appel marche ce quin'est pas sur
    C'est même sûr que non.
    A la rigueur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "<script type='text/javascript'>";
    echo "construisTableauJS($recup, 'monTableauJS')";
    echo "document.write(monTableauJS.toSource())";
    echo "</script> "
    Et encore, j'ai l'impression qu'il y a trop de confusions entre JS et PHP

    A+

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo "construisTableauJS($recup, 'monTableauJS')";
    echo "<script type='text/javascript'>";
    echo "document.write(monTableauJS.toSource())";
    echo "</script> "
    Plutot ca comme ca, étant donné que la function construisTableauJS est du php et non du javascript.

    Enfin bon, à mon avis le mieux est que tu essayes par toi meme de regarder chaque ligne de code et de te demander en quel langage c'est écrit et si tu peux utiliser ce langage à l'endroit du code ou cette partie du code est présente, ca t'éviteras bien des problèmes.

    Programmation= patience

    Bon courage.

  16. #16
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par tusssss Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo "construisTableauJS($recup, 'monTableauJS')";
    echo "<script type='text/javascript'>";
    echo "document.write(monTableauJS.toSource())";
    echo "</script> "
    Plutot ca comme ca, étant donné que la function construisTableauJS est du php et non du javascript.

    Enfin bon, à mon avis le mieux est que tu essayes par toi meme de regarder chaque ligne de code et de te demander en quel langage c'est écrit et si tu peux utiliser ce langage à l'endroit du code ou cette partie du code est présente, ca t'éviteras bien des problèmes.

    Programmation= patience

    Bon courage.
    +1

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 74
    Par défaut
    Ouép merci bcp, mais déja cette ligne de code:
    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
     
    <?php   $res=mysql_query("SELECT * FROM Gamme ORDER BY nom_gamme");
             while ($donnees = mysql_fetch_array($res) )
                                            {
                                                    $id=$donnees['id_gamme'];
                                                    &recup=mysql_query("SELECT 'nom_produit' FROM 'Bose' WHERE 'id_gamme'=".$id." ORDER BY 'nom_produit'");
                                                    //echo "<script type='text/javascript'>";
                                                    //construisTableauJS($recup, monTableauJS);
                                                    //document.write(monTableauJS.toSource());
                                                    
     
                                                    
                                                    
    ?>
    <div id="texte2"  Onclick="alert('yopla');" style=" cursor:pointer;"><br>-
    <?php
    echo $donnees['nom_gamme'];?><br></div>
    <?php
    est fausse c'est impossible de effecuter le $recup avant d'afficher le echo $donnees['nom_gamme'], donc est ce possible d'effectuer une requete sql sur un onclick ou pas?

  18. #18
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Un simple rappel pour eclaircir les choses ...

    Php s'execute coté serveur
    Javascript coté client

    Php ne fait que générer le code html javacript css qui sera envoyé au browser du client pour interprétation...

    Tant que le php génère la page pas d'interprétation de javascript
    une fois le code parti du sereur pas de php interprété.

    Voilà les bases ...
    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 !

  19. #19
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Citation Envoyé par clara1 Voir le message
    Ouép merci bcp, mais déja cette ligne de code:
    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
     
    <?php   $res=mysql_query("SELECT * FROM Gamme ORDER BY nom_gamme");
             while ($donnees = mysql_fetch_array($res) )
                                            {
                                                    $id=$donnees['id_gamme'];
                                                    &recup=mysql_query("SELECT 'nom_produit' FROM 'Bose' WHERE 'id_gamme'=".$id." ORDER BY 'nom_produit'");
                                                    //echo "<script type='text/javascript'>";
                                                    //construisTableauJS($recup, monTableauJS);
                                                    //document.write(monTableauJS.toSource());
                                                    
     
                                                    
                                                    
    ?>
    <div id="texte2"  Onclick="alert('yopla');" style=" cursor:pointer;"><br>-
    <?php
    echo $donnees['nom_gamme'];?><br></div>
    <?php
    est fausse c'est impossible de effecuter le $recup avant d'afficher le echo $donnees['nom_gamme'], donc est ce possible d'effectuer une requete sql sur un onclick ou pas?
    Effectuer une requete SQL sur un onclick est à priori impossible directement, il faut passer par du AJAX, puisque pour effectuer une requeteSQL il faut utiliser du PHP et qu'on ne peut pas incorporer du PHP dans du javascript étant donné que l'un est executé coté serveur et l'autre coté client.

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 74
    Par défaut
    OK donc impossible d'effecuter une requete en php sur un onclick, alors effectuer cette requete avant c'est à dire lors de l'affichage des gammes on recupère tout les nom de produits corespondants à cette gamme
    si je le fais avant comme noté, le echo $donnees['nom_gamme'] n'est pas pris en compte... pourquoi?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Syntaxe de onclick sur une balise a
    Par Mvu dans le forum jQuery
    Réponses: 6
    Dernier message: 20/11/2012, 09h17
  2. Réponses: 2
    Dernier message: 01/02/2010, 10h07
  3. Onclick sur un div sauf sur les div enfants
    Par Roromix dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/02/2009, 18h13
  4. Onclick non pris en compte sur une div ( sous IE7)
    Par le_chomeur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/09/2008, 16h40
  5. onClick sur deux div superposés
    Par sourivore dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/09/2008, 09h27

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