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 :

[PHP-JS] PHP-javascript (BDD-attribut dynamique)


Sujet :

Langage PHP

  1. #1
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut [PHP-JS] PHP-javascript (BDD-attribut dynamique)
    Bonjour,

    Je commence à peine à me former au php et javascript, j'ai de bonnes bonnes en html, et déjà, j'avoue être perdu. J'ai un problème, je vous explique:
    Je voudrai avoir une image sur ma page, avec une image par défaut. Je voudrai que quand on clique sur l'image, la source change si une variable n'a pas une certaine valeur. Concrètement, une case terrain, si terrain vide, quand clique, on construi... Voila.

    alors j'ai fait:
    je crée l'image dynamiquement (en fait il y en a plein, qui s'appel emplacement1, emplacement2, ...). Le code est inclu dans des boucles php.
    $case[$nbre]= par ex $case[2]= "emplacement 2"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo "<a onclick='clicker($case[$nbre])'>";
    echo "<img src='images/normal.JPG' width='40' height='30' border='0' name='$case[$nbre]' alt='Emplacement  construire $nbre'/>";
    echo " </a>";
    ce code est inclu dans le body et fonctionne bien. Par contre la déclaration de clicker(valeur) ne marche pas. J'ai essayer deux choses:
    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
     
    function clicker($nom){
    	$a =mysql_query("SELECT batiment FROM map WHERE pseudo='$nom'");
    	echo '$a';
     
    	if ($a == "rien")
    	{
    	return "<SCRIPT language=javascript>document.images[$nom].src='images/bat.JPG';</script>";
    	}
    	}
     
    	?>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function clicker($nom){
    	$a =mysql_query("SELECT batiment FROM map WHERE pseudo='$nom'");
    	echo '$a';
     
    	if ($a == "rien")
    	{
    	echo "<SCRIPT language=javascript>document.images[$nom].src='images/bat.JPG';</script>";
    	}
    	}
     
    	?>
    Or cela ne marche pas, je sais pas comment gérer php et javascript ensemble. Je me sert de php pour communiquer avec la table batiment pour voir ce que contient la case sur laquel on a cliqué, puis de javascript pour changer l'image mais ca ne marche pas... Comment faire? Est ce que php me permet d'avoir accés à " document.images[$nom].src " ou suis-je obliger de passer par le javascript..? Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Salut,

    la fonction clicker est une fonction php, tu ne peux pas l'atteindre par javascript (FAQ). Essaie de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo "<a href='page.php?nom=$case[$nbre]>";
    echo "<img src='images/normal.JPG' width='40' height='30' border='0' name='$case[$nbre]' alt='Emplacement  construire $nbre'/>";
    echo " </a>";
    le click sur l'image t'enverra vers page.php où tu pourras faire ta requête (pas besoin de javascript en fait ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $res =mysql_query('SELECT batiment FROM map WHERE pseudo= "' . $_GET['nom'] . '"');
    echo mysql_result ($res, 0, 'batiment');
     
    if (mysql_result ($res, 0, 'batiment') == "rien")
    {
    echo "<img src='images/bat.JPG' width='40' height='30' border='0' name='...' alt='...'/>";
    }

  3. #3
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    bonsoir billoum
    j'ai testé en remplaçant mon code de creation de l'image par le tien et déjà, il me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 55 in /home/darkyl/www/partie.php on line 63
    Je vais essayer d'arranger ça. Par contre, je crois que ça ne m'aidera (sauf si j'ai pas compri lol), parce que le but est que l'image change de source et pas une redirection... J'aurais par la suite d'autres requêtes à effectuer dans ma procédure cliquer() (heu pardon function... vestige de programmeur). Donc mon but est d'arriver à faire une function cliquer qui prend un nom, se sert de ce nom pour rechercher dans une table ce qu'il y a à l'image qui porte ce nom et s'il y a rien, afficher une autre image... Donc, à l'exécution, mes images auront aaa.JPG, puis apré un clique sur une image, celle-ci prendra bbb.JPG . Il me faudra plus tard ajouter d'autres requêtes à ma fonction cliquer()..

    Ton astuce résoud ca? merci en tout cas de ta réponse.

  4. #4
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    ok, c'est bon, je suis arriver à faire tourner ton code, pas de souci, c'était ma faute. Par contre, j'arriver déjà à faire çela, le but étant de rester dans la même page et de ne modifier que l'image choisi et pas les autres autour. Le problème est pour l'instant assez simple. En fouillant dans developpez.com, j'ai trouver le passage de variable de php vers javascript, cela aurait pu m'aider mais comme tu l'a dit toi même, impossible d'executer du php dans du javascript (l'inverse oui), donc si je fait la fonction cliquer en javascript, je ne peut pas me connecter à la bdd pour récupérer ce qu'il y a dedans... Je peux toujours fonctionner en tableau, je le crée quand je créer mes cases 'images) , en même temps que ma bdd mais je me sert du tableau dans javascript. C'est une solution, seulement je voudrais que toutes les infos soient enregistré directement dans la bdd et pas avoir à transférer mon tableau dedans tous les x tps... pour eviter les pertes d'information . Je sais pas si je m'exprime bien. Dis-moi si tu comprend mon souci.
    Merci

    (Dire qu'il me faut aussi les fonctions onmouseover, onmousedown etc qu'il faut que je retravaille, si j'arrive même pas à faire onclick..., je vais pas y arriver)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    ce n'est pas obligatoirement une redirection, ce code peut se trouver sur la même page que l'image à cliquer, mais pour exécuter la requête, tu vas être obligé d'au moins rafraichir ta page.

    Et pour éviter le warning, je pense qu'il faut rajouter un test sur l'existence de la variable $_GET[...]:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (isset ($_GET['nom']))
    {
    $res =mysql_query('SELECT batiment FROM map WHERE pseudo= "' . $_GET['nom'] . '"');
    echo mysql_result ($res, 0, 'batiment');
     
    if (mysql_result ($res, 0, 'batiment') == "rien")
    {
    echo "<img src='images/bat.JPG' width='40' height='30' border='0' name='...' alt='...'/>";
    }
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    heu pas sûr de bien tt comprendre en fait..

  7. #7
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    Pour tester sur la même page, il faut que je modifie complètement mon code car à l'exécution de ma page, la table était créer, rempli et les images crée donc si je la rafraichi, tous sera recréer et rerempli... je le testerai demain. Merci de ton aide, je te tiens au courant.

    Par contre, pas moyen d'évité le rechargement de la page? On arrive bien à faire du rollover sur des images en javascript, et là juste parse ke j'ai besoin de faire une vérif avant, obligé de passer par là?...

  8. #8
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    ben, la seul différence avec les script de rollover, c'est que je dois vérifier une donner dans une bdd donc je créer une fonction php qui s'appelle cliquer, qui s'exécutera dynamiquement et changera un image.src ...
    hors dans ma fonction cliquer (en php), j'arrive pas à inclure le bout de code javascript aprés le if pour changer l'image, c'est la que je bug. Dans le rollover, le fichier image est indiquer à la création de l'objet image mais moi il me faut une modification dynamique possible. C'est faisable? Ton astuce à l'air de fonctionner, je l'ai pas tester dans une redirection vers la m^me page mais ça à l'air bon, par contre j'aurais souhaiter ne pas avoir à recharger et pouvoir faire autre chose que la modifictation de l'image dans la fonction cliquer..

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Citation Envoyé par Darkyl Voir le message
    Par contre, pas moyen d'évité le rechargement de la page? On arrive bien à faire du rollover sur des images en javascript, et là juste parse ke j'ai besoin de faire une vérif avant, obligé de passer par là?...
    Déso mais oui obligé si tu veux récupérer ou mettre à jour des données de ta base.. il y a pê moyen sans rafraichir mais alors tu devras faire les requêtes SELECT en même tps que tu construits ta table et utiliser une fonction javascript qui changera la source de l'image.. mais pour cela tu devras t'orienter vers le forum javascript

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    Si tu veux faire ça sans recharger la page, il te faut soit récupérer toutes les valeurs possibles de ta table et les envoyer à ton javascript au format JSON par exemple, et ensuite tu effectues ta requête sur ton object JSON, soit passer par de l'AJAX.

    A mon avis la première solution est préférable si ta table n'est pas très grande et la seconde dans le cas contraire.

  11. #11
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    merci beaucoup pour vos avis. Pour le rechargement de la page, c'est pas tréss génant car j'utilise des frame. Par contre l'idée de Palca est intéressante, par contre j'ai déjà du mal avec php et javascript alors AJAX... J'utilise de grande bdd...
    C'est accessible comme langage?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Mé oui.. avais complètement zappé l'AJAX

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    C'est pas un langage, juste une manière d'interagir avec le serveur. C'est simple dès qu'on a compris le principe.
    Suis ce tuto par exemple, tout y est expliqué.

  14. #14
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    Merci à tous, je vais étudier un peu AJAX voir ce qu'il a dans le ventre. Etant issus de la programmation standart, Delphi et c, je trouve que les langages de programmations qui supporte un réseau (php, javascript...) sont trés compliqué à travailler ensembles, dés qu'on veut faire un truc, faut mélanger plusieurs langages...c'est pas facile lol!

    En tout cas, merci pour vos réponses si rapide, je mettrai en lien la page quand j'aurais fini mon problème.

    Bonne prog à tous

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

Discussions similaires

  1. Création dynamique de page php sur formulaire JavaScript
    Par Darkyl dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 31/05/2013, 15h37
  2. Appel fonction php dans code javascript
    Par licorne dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/03/2008, 10h55
  3. [PHP-JS] php dans du javascript
    Par HwRZxLc4 dans le forum Langage
    Réponses: 4
    Dernier message: 27/04/2007, 18h11
  4. [PHP-JS] PHP dans du Javascript
    Par stolx_10 dans le forum Langage
    Réponses: 5
    Dernier message: 17/10/2006, 15h24
  5. [PHP-JS] Php dans un script javascript
    Par nebule dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/11/2004, 10h38

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