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

Langage PHP Discussion :

écrire du javascript avec PHP


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut écrire du javascript avec PHP
    bonjour,

    Voila je voudrais crée une page javascript via du php or cela ne fonctionne pas.
    Voila le code que j'utilise en vain:
    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
     
    function VisuImg()
    {
    	var div = document.getElementById('res');
    	var Img = document.getElementById('SelectImg').value;
          alert('test');
         var strHTML = '';
         switch (Img)
           {
        <?php
    	include('IDconnect.inc.php'); //permet se connecter a la bdd
    	$sql = "SELECT ID FROM Upload ";
    	$requete = mysql_query ($sql);
    	while ($Choix = mysql_fetch_assoc($requete))
    	{
    		echo "case ".$Choix[ID]." ";
    			echo ' strHTML+= \'Visu'.$Choix["ID"].'(strHTML)\'; ';
    			echo 'break; ';
    	}
    	?>
    	}
        div.innerHTML = strHTML;
    }
    Merci de m'aider sur ce problème afin que je puisse avancer dans le création de mon site.

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    Je voudrais bien t'aider mais je ne comprends pas du tout ce que tu veux faire. Que doit faire ta fonction javascript ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    En faite ma fonction javascript doit récupérer dans une base de données un ID et un nom de ficher afin que lorsque je change de valeur dans mon sélect, cela m'affiche l'image correspondante.
    Or comme j'upload des fichiers sur mon site, cette fonctions javavascript doit pour chaque ID me créer un appelle de fonction.

    Voila ce que je veux que php me 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
    19
    20
    21
    22
    23
     
    function VisuImg()
    {
    var div = document.getElementById('res');
    var Img = document.getElementById('SelectImg').value;
    //alert('test');
    var strHTML;
    switch (Img);
    {
    case "1":                                Cela doit être générer par php
    strHTML = Visu1(strHTML);
    break;
    case "2":
    ......
    }                                          Fin de génération par php
    div.innerHTML = strHTML;
    }
     
    function Visu1(strHTML)          Générer par php
    {
    strHTML +=\'<img src="Namefile.jpg">\';
    return (strHTML);
    }

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Le problème c'est que tu n'a pas mis le code concernant le SELECT, et à mon avis tout repose sur les infos que contiennent ce SELECT.

    Rien ne dit qu'il faille faire une requête SQL pour rechercher l'image correspondante à celle sélectionnée dans le SELECT.
    Faut voir.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    voila le code du select qui doit me générer le code javascipt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    include('IDconnect.inc.php'); //ID de conncetion a ma bdd
    $sql = "SELECT ID FROM Upload ";
    $requete = mysql_query ($sql);
    while ($Choix = mysql_fetch_assoc($requete))
    {
    	echo "case ".$Choix[ID].";";
    		echo ' strHTML+= \'Visu'.$Choix["ID"].'(strHTML)\'; ';
    		echo 'break; ';
    }
    ?>
    La table Upload est constituer comme cela:

    -------------------------
    | ID | Name |
    -------------------------
    | 1 | fleche.jpg |
    -------------------------

    et voila le code qui doit me générer les fonctions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $sql = "SELECT * FROM Upload ";
    $requete = mysql_query ($sql);
    while ($Functions = mysql_fetch_assoc($requete))
    {
    	echo 'function Visu'.$Functions["ID"].' ';
    	echo ' { ';
    	echo ' strHTML+ = \'<img src="'.$Functions["Name"].'" /> \';';
    	echo ' return (strHTML) ';
    	echo ' } ';
    }
    ?>

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Il y a un problème de compréhension concernant le SELECT.

    Un SELECT théoriquement c'est une liste de choix, et en HTML ça donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <select name="choix">
        <option value="1">Choix 1</option>
        <option value="2">Choix 2</option>
        <option value="3">Choix 3</option>
    </select>
    De plus ceci devrait être placé dans un formulaire.

    Ca peut être aussi des bouton radios, voir autre technique.
    Mais rien dans ton code (coté HTML) fourni une liste où il sera possible de faire un choix parmi les éléments.
    Donc question : Où et comment est cette liste ?


    Toujours est il que coté Php, tu ferais sensiblement la même chose cela 2 fois (une requête SQL sur la même table Upload).
    C'est quasi certain que le faire qu'1 fois serait possible.
    Mais il faut d'abord éclaircir le point ci-dessus.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    Pardon excuse moi je m' était emmêlé les pinceaux et je n' avais pas compris que tu voulais le code cote HTML pour la sélection.

    Le voici:

    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
    <div id="title">Affichage des fichiers:
    <?php
    $sql = "SELECT * from Upload";
    $requete = mysql_query ($sql);
    if (mysql_num_rows($requete) == 0)
    {
    	echo "Aucun Fichier.";
    }else
    {
            echo '<select id="SelectImg" onchange="VisuImg()">';
            echo '<option value=""></option>';
    	while ($Fichiers = mysql_fetch_assoc($requete))
    	{
    	echo '<option value="'.$fichiers["ID"].'">'.$Fichiers["Name"].'</option>';
    	}
    	echo '</select>';
    }
    ?>
    </div>
    <div id="text">
    <?php
    echo '<div id="res"></div>';
    ?>
    </div>
    Or cela fonctionne parfaitement car si j enléve le code php qui doit me générer le code javascrript, je rentre bien dans la fonction VisuImg car ça m'affiche le alert.

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Là c'est mieux.

    Je te donne une idée (à tout hasard) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ($Fichiers = mysql_fetch_assoc($requete))
    {
    echo '<option id="id_'.$fichiers["ID"].'" rel="'.$Fichiers["Name"].'" value="'.$fichiers["ID"].'">'.$Fichiers["Name"].'</option>';
    }
    En faite, on triche un peu en exploitant l'attribut rel, en y rajoutant le nom de cette image, ce qui va éviter de faire une requête SQL pour ça.
    (Sans compter que ce n'était pas vraiment possible de le faire, sauf en utilisant de l'Ajax, soit de l'artillerie lourde pour aussi peu).

    Théoriquement, tu dois maintenant pouvoir récupérer la valeur de l'attribut id de l'option sélectionnée.
    La valeur ici sera quelque chose comme : id_10
    Et grâce à cet id, tu devrais ainsi pouvoir récupérer la valeur de l'attribut rel correspondante, c'est à dire le nom de l'image.
    Une fois obtenu le nom, reste plus qu'à générer le code HTML, c'est à dire l'image (<img src="..." />).

    Avec les fonctions :
    document.getElementById('');
    document.getElementByName('');
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ah RunCodePhp m'a devancé,
    voici comment j'aurais simplifié le tout :
    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
    <script type="application/javascript">
    function visuImg(src) {
       var img = '';
       if (src.length) {
          img = '<img src="'+src+'" />';
       }
       document.getElementById('res').innerHTML = img;
    }
    </script>
    <div id="title">Affichage des fichiers:
    <?php
    $sql = "SELECT * from Upload";
    $requete = mysql_query($sql);
    if (mysql_num_rows($requete) === 0): ?>
       <span>Aucun fichier</span>
    <?php else: ?>
       <select id="SelectImg" onchange="VisuImg(this.options[this.selectedIndex].value)">
          <option value=""></option>
          <?php while ($data = mysql_fetch_assoc($requete)): ?>
          <option value="<?php echo $data['Name']; ?>"><?php echo $data['Name']; ?></option>
          <?php endwhile; ?>
       </select>
    <?php endif; ?>
    </div>
    <div id="text">
       <div id="res"></div>
    </div>
    Bon aucun tests, rien, juste sorti du four
    Il faut juste s'assurer que les noms des fichiers soient bien uniques

  10. #10
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    @rawsrc
    Attention tout de même, car tu changes un peu les règles.
    Si à la validation du formulaire (si formulaire il y a d'ailleurs), ce ne sera plus l'ID de l'image qui sera renvoyée, mais son nom.
    Du coup, faut voir.

    C'est pour ça que je n'ai pas modifié ça, et opté pour un attribut rel en y rajoutant le nom.
    Ca complique un peu plus les choses, c'est vrai.


    @freeman43
    D'où l'utilité de fournir des infos complètes.
    Le SELECT, formulaire ou pas ... qui sait, il y a peut être autre chose.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  11. #11
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    @rawsrc
    Attention tout de même, car tu changes un peu les règles.
    Si à la validation du formulaire (si formulaire il y a d'ailleurs), ce ne sera plus l'ID de l'image qui sera renvoyée, mais son nom.
    Du coup, faut voir.
    Je me suis posé la question et après en avoir discuté avec moi-même je suis tombé d'accord sur l'idée que ce n'était qu'une simple visionneuse donc faisable sans trop de problèmes par la suite.
    Bon après s'il faut conserver l'id, c'est aisément modifiable (mix avec ton code) :
    On perd juste au passage la validation W3C sauf si c'est du HTML 5 :
    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
    <script type="application/javascript">
    function visuImg(src) {
       var img = '';
       if (src.length) {
          var img = '<img src="'+src+'" />';
       }
       document.getElementById('res').innerHTML = img;
    }
    </script>
    <div id="title">Affichage des fichiers:
    <?php
    $sql = "SELECT * from Upload";
    $requete = mysql_query($sql);
    if (mysql_num_rows($requete) === 0): ?>
       <span>Aucun fichier</span>
    <?php else: ?>
       <select id="SelectImg" onchange="VisuImg(this.options[this.selectedIndex].rel)">
          <option value=""></option>
          <?php while ($data = mysql_fetch_assoc($requete)): ?>
          <option value="<?php echo $data['ID']; ?>" rel="<?php echo $data['Name']; ?>"><?php echo $data['Name']; ?></option>
          <?php endwhile; ?>
       </select>
    <?php endif; ?>
    </div>
    <div id="text">
       <div id="res"></div>
    </div>
    Je n'y ai pas pensé au premier coup mais il est possible de récupérer le text donc la source du fichier tout en conservant l'id :
    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
    <script type="application/javascript">
    function visuImg(src) {
       var img = '';
       if (src.length) {
          var img = '<img src="'+src+'" />';
       }
       document.getElementById('res').innerHTML = img;
    }
    </script>
    <div id="title">Affichage des fichiers:
    <?php
    $sql = "SELECT * from Upload";
    $requete = mysql_query($sql);
    if (mysql_num_rows($requete) === 0): ?>
       <span>Aucun fichier</span>
    <?php else: ?>
       <select id="SelectImg" onchange="VisuImg(this.options[this.selectedIndex].text)">
          <option value=""></option>
          <?php while ($data = mysql_fetch_assoc($requete)): ?>
          <option value="<?php echo $data['ID']; ?>"><?php echo $data['Name']; ?></option>
          <?php endwhile; ?>
       </select>
    <?php endif; ?>
    </div>
    <div id="text">
       <div id="res"></div>
    </div>

Discussions similaires

  1. Boite de dialogue javascript avec PHP
    Par moulery dans le forum Langage
    Réponses: 6
    Dernier message: 29/04/2010, 07h41
  2. appeler des fonctions javascript avec php
    Par thaundeadboss dans le forum Langage
    Réponses: 1
    Dernier message: 11/12/2009, 11h18
  3. [PHP-JS] Problème de JavaScript avec PHP ?
    Par MaTHieU_ dans le forum Langage
    Réponses: 9
    Dernier message: 03/08/2006, 22h27
  4. [PHP-JS] recuperation de variable javascript avec php
    Par dipajero dans le forum Langage
    Réponses: 3
    Dernier message: 21/03/2006, 20h39
  5. [PHP-JS] problème de javascript avec php
    Par ph_anrys dans le forum Langage
    Réponses: 9
    Dernier message: 02/03/2006, 10h34

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