Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2552 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Passer des variables Javasceipt dans du php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Passer des variables Javasceipt dans du php

n°1305211
ramkin
Posté le 14-02-2006 à 14:29:12  profilanswer
 

Salut à tous,
 
J'ai un petit Javascript qui fait diaporama: on clique sur Suivant ou Précédent, et ça va chercher l'image en question, les photos en question étant nommées photo1, photo2....donc c'est très facile. Voici le code:
 

Citation :

<html>  
<body>
 
<SCRIPT type='text/javascript'>
<!--";
image_courante = 1;
nombre_images = 4;    
function change_image(direction) {
image_courante = image_courante + direction;
if (image_courante < 1) { image_courante = nombre_images };
if (image_courante > nombre_images) { image_courante=1 };
document.photo.src = 'photos/photo' + image_courante + '.jpg';
}
// -->
</SCRIPT>
 
<IMG SRC="photos/photo1.jpg" name="photo">
  <table onmousedown="change_image(-1)">
   <td>PRECEDENTE</td>
  </table>
  <table onmousedown="change_image(1)">
   <td>SUIVANTE</td>
  </table>
 
</body>
</html>


 
 
Mais en plus je voudrais afficher avec chaque photo un commentaire. Ce commentaire je peux le récuppérer dans un fichier .txt via php, et l'insérer au script. (après une lutte acharnée et l'intervention d'un certain PhenXDesig n  :jap: ici: http://forum.hardware.fr/hardwaref [...] 1.htm#bas)
 
Oui mais voilà, la variable image_courante, qui est un nombre,  qui tourne dans le Javascript doit être récuppérée par le php pour aller chercher la bonne ligne dans le fichier .txt.
 
C'est possible?
 
:sol:  
 

mood
Publicité
Posté le 14-02-2006 à 14:29:12  profilanswer
 

n°1305251
omega2
Posté le 14-02-2006 à 14:53:01  profilanswer
 

http://forum-images.hardware.fr/th [...] herche.gif
recherche javascript dans le corp des message dans la catégorie php.
 
J'en ai marre de me répéter sur le sujet alors lit ça :
http://forum.hardware.fr/hardwaref [...] 4812-1.htm

n°1305468
rufo
Pas me confondre avec Lycos!
Posté le 14-02-2006 à 17:25:03  profilanswer
 

plutôt que faire un tableau foireux pour simuler les 2 boutons, fais 2 liens hypertextes et dans les url, tu passes le n° d'indice des images précédente et suivante.
ex d'url : www.monsite.php?NumImage=2
 
Après, dans php, tu utilise la variable $_GET["MonImage"]

n°1306567
ramkin
Posté le 15-02-2006 à 17:28:03  profilanswer
 

rufo a écrit :

plutôt que faire un tableau foireux pour simuler les 2 boutons, fais 2 liens hypertextes et dans les url, tu passes le n° d'indice des images précédente et suivante.
ex d'url : www.monsite.php?NumImage=2
 
Après, dans php, tu utilise la variable $_GET["MonImage"]


 
 
Salut rufo,  :hello:  
D'abord mes tableaux sont pas foireux du tout mais très jolis!! Je t'es épargné les images de fond et feuille de style pour alléger le code, mais l'effet bouton enfoncé/relaché me plait bien.
En tout cas, j'avais surtout pas envie de faire comme ton lien, tout pourri, qui ne renvoie vers rien....  :lol:  
 
Bon mais surtout, la question ne concernait ni l'image, ni le tableau:

Citation :

je voudrais afficher avec chaque photo un commentaire. Ce commentaire je peux le récuppérer dans un fichier .txt via php, et l'insérer au script. Oui mais voilà, la variable image_courante, qui est un nombre,  qui tourne dans le Javascript doit être récuppérée par le php pour aller chercher la bonne ligne dans le fichier .txt.


 
 
Désolé pour les redites omega2, mais merci pour les lien. C'est un peu pénible à gérer le mix php/Javascript, surtout lorsque les variables sont des chaines, parce qu'entre les côtes et doubles-côtes, ça devient vite l'enfer!!
 
Bon mais, j'insiste....  :sweat:  
 
 :sol:  
 
 

n°1306569
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 17:31:58  profilanswer
 

ramkin a écrit :

En tout cas, j'avais surtout pas envie de faire comme ton lien, tout pourri, qui ne renvoie vers rien....


Tu plaisante là, je veux dire... tu le fais exprès???

n°1306575
afbilou
pouet your life
Posté le 15-02-2006 à 17:39:10  profilanswer
 

faut générer le code javascript qui va bien avec PHP stou ...
creer avec PHP un tableau javascript qui contient tes commentaires.
 
pense a faire marcher ton site sans javascript avec des liens images suivante et images precedentes ... le javascript, s'il est activé sur le navigateur, modifiant le comportement de ces liens pour faire un diaporama plus sympa.

n°1306626
rufo
Pas me confondre avec Lycos!
Posté le 15-02-2006 à 18:27:46  profilanswer
 

ramkin a écrit :

Salut rufo,  :hello:  
D'abord mes tableaux sont pas foireux du tout mais très jolis!! Je t'es épargné les images de fond et feuille de style pour alléger le code, mais l'effet bouton enfoncé/relaché me plait bien.
En tout cas, j'avais surtout pas envie de faire comme ton lien, tout pourri, qui ne renvoie vers rien....  :lol:  
 
Bon mais surtout, la question ne concernait ni l'image, ni le tableau:

Citation :

je voudrais afficher avec chaque photo un commentaire. Ce commentaire je peux le récuppérer dans un fichier .txt via php, et l'insérer au script. Oui mais voilà, la variable image_courante, qui est un nombre,  qui tourne dans le Javascript doit être récuppérée par le php pour aller chercher la bonne ligne dans le fichier .txt.


 
 
Désolé pour les redites omega2, mais merci pour les lien. C'est un peu pénible à gérer le mix php/Javascript, surtout lorsque les variables sont des chaines, parce qu'entre les côtes et doubles-côtes, ça devient vite l'enfer!!
 
Bon mais, j'insiste....  :sweat:  
 
 :sol:


 
 
bien sûr que si, il renvoie vers qq chose mon lien! Vers le script php chargé de récupérer le commentaire et d'afficher la bonne image + le commentaire. Grâce à la variable $_GET["MonImage"] (dont la valeur provient du lien hypertexte, des fois que tu n'aurais pas compris), tu connais l'image à afficher, donc tu sais quel commentaire il faut afficher. On peut imaginer un fichier txt (format csv par ex) qui contient le n° de l'image et le commentaire associé.

n°1306793
Djebel1
Nul professionnel
Posté le 16-02-2006 à 07:15:00  profilanswer
 

rufo a écrit :

bien sûr que si, il renvoie vers qq chose mon lien! Vers le script php chargé de récupérer le commentaire et d'afficher la bonne image + le commentaire. Grâce à la variable $_GET["MonImage"] (dont la valeur provient du lien hypertexte, des fois que tu n'aurais pas compris), tu connais l'image à afficher, donc tu sais quel commentaire il faut afficher. On peut imaginer un fichier txt (format csv par ex) qui contient le n° de l'image et le commentaire associé.


non mais je crois qu'il veut dire que quand il clique sur ton lien, le site est introuvable  :pt1cable:

n°1306809
dwogsi
Défaillance cérébrale...
Posté le 16-02-2006 à 09:06:35  profilanswer
 

D'où ma question :

dwogsi a écrit :

Tu plaisante là, je veux dire... tu le fais exprès???

n°1306826
phenxdesig​n
Posté le 16-02-2006 à 09:27:03  profilanswer
 

ramkin a écrit :

Salut à tous,
 
J'ai un petit Javascript qui fait diaporama: on clique sur Suivant ou Précédent, et ça va chercher l'image en question, les photos en question étant nommées photo1, photo2....donc c'est très facile. Voici le code:
[..]
Oui mais voilà, la variable image_courante, qui est un nombre,  qui tourne dans le Javascript doit être récuppérée par le php pour aller chercher la bonne ligne dans le fichier .txt.
 
C'est possible?
 
:sol:


Ben pas besoin de javascript ici, fais simplement des liens vers la page suivante et la page precedente, qui vont chercher dans le fichier ce que tu veux, et affiche la bonne image... comme on te l'a dit au dessus...
tu vas t'emmerder avec le JS, passe les numeros des images dans l'adresse genre images.php?id=12 et recupere avec $_GET['id'] dans PHP
(et pour le lien foireux: c'est vrai, tu plaisantes pas ?  :pt1cable: )

mood
Publicité
Posté le 16-02-2006 à 09:27:03  profilanswer
 

n°1306935
rufo
Pas me confondre avec Lycos!
Posté le 16-02-2006 à 11:35:39  profilanswer
 

Djebel1 a écrit :

non mais je crois qu'il veut dire que quand il clique sur ton lien, le site est introuvable  :pt1cable:


 
ah, ouaih, quand même... Je l'avais pas compris comme ça, moi. :D  

n°1311748
ramkin
Posté le 22-02-2006 à 18:52:27  profilanswer
 

Salut tous,   :hello:  
 
Désolé pour l'abscence mais raison d'état oblige!!
 
Pour l'histoire du lien qui mène vers rien, faut pas chercher.....  :lol:  C'était juste pour rembarrer (gentiment...  :) ) rufo d'avoir insulté mes boutons... (Faut pas se moquer des boutons des gens...  :D )
 
Bon, alors, ceci étant dit, si j'ai fait du JS c'était pour faire des boutons agréables, avec deux images, par pur esthétisme.... Et à l'époque c'est tout ce que j'avais trouvé. Et je n'étais pas encore au php.
 
Je vais regarder du côté de cette "obscure" fonction $_GET(), comme vous le conseillez.
 
 :sol:

n°1311764
nargy
Posté le 22-02-2006 à 19:21:31  profilanswer
 

j utilise pour ça un <span id=texte> (texte vide) </span>, et sur le lien tu fais (en gros):
 
onclick="document.texte.innerHTML='<SCRIPT url=&quot;http://siteweb/text'+numero_image+'.js&quot;></SCRIPT>';"
 
Quand tu clique sur le lien, ça lance un script javascript numéroté. ça fonctionne avec les dernières version de IE, NS, FF, & Opera.
 
Dans text1.js tu mets par exemple:
document.texte.innerHTML=Texte à afficher pour image 1
 
Tu peut rajouter du PHP dans tout ça si le texte provient d une BDD.
 

n°1311797
ramkin
Posté le 22-02-2006 à 20:09:59  profilanswer
 

nargy a écrit :

j utilise pour ça un <span id=texte> (texte vide) </span>, et sur le lien tu fais (en gros):
 
onclick="document.texte.innerHTML='<SCRIPT url=&quot;http://siteweb/text'+numero_image+'.js&quot;></SCRIPT>';"
 
Quand tu clique sur le lien, ça lance un script javascript numéroté. ça fonctionne avec les dernières version de IE, NS, FF, & Opera.
 
Dans text1.js tu mets par exemple:
document.texte.innerHTML=Texte à afficher pour image 1
 
Tu peut rajouter du PHP dans tout ça si le texte provient d une BDD.


 
 
Oui j'ai à peu près la même chose, au sujet du Onclick, mais le truc c'est que les textes accompagnant chaque photos se trouvent tous dans un même fichier.
 
D'ailleurs j'ai trouvé un truc qui marche. Je vous le mets. Attention, ça dépote...  :sweat:  
 
On imagine donc un fichier texte.txt conçu comme ça:

Citation :

photo 1: Ceci est le texte de la première photo.
photo 2: Ici le texte de la deuxième.
 
...etc...


 
 
IMPORTANT! Pas de retour à la ligne! Chaque texte doit être sur une seule ligne.
 

Citation :

<script src="../selection_impossible.js"></script>
 
<?php
echo "  
<SCRIPT type='text/javascript'>
<!--
 
image_courante = 1;
nombre_images = 40;
";
 
for ($numero_ligne = 0; $numero_ligne <= 39; $numero_ligne++) {
 $ligne = $tab[$numero_ligne];
 $ligne = substr($ligne, 10);
 $ligne = str_replace("\r\n", "\\r\\n", $ligne);                // pour echapper les retours a la ligne
 echo ("texte$numero_ligne = '$ligne';" );
};
echo "  
function change_image(direction) {
image_courante = image_courante + direction;
if (image_courante < 1) { image_courante = nombre_images };
if (image_courante > nombre_images) { image_courante=1 };
document.photo.src = 'photos/photo' + image_courante + '.jpg';
document.getElementById('texte').innerHTML=eval('texte' + image_courante);
}
// -->
</SCRIPT>
";
?>


 
La boucle for va créer les variable texte1, texte2.... qui seront insérer dans le scripts.
 
 
J'ai pas trouvé mieux.
 
 
mais effectivement, je commence à me pencher sur la question de faire ça sans JS.
 
 :sol:

n°1311804
nargy
Posté le 22-02-2006 à 20:22:59  profilanswer
 

Ok, petit topo PHP:
1- fonction PHP utile pour lire un fichier texte:
file()
retourne une array, chaque ligne du fichier est stockée dedans. la 1ere ligne est dans array[0].
 
2- tu peut appeler un script PHP, genre gettext.php, qui s identifie comme un script JavaScript (voir doc sur php.net sur les mime types)
 
3- tu passe le numéro de la photo ainsi:
(javascript:) 'gettext.php?numero='+numero
 
4- dans gettext.php, la variable $numero contient le numero de la photo, donc:

Code :
  1. header("mime-type?: text/javascript" );
  2. $basededonnee=file('textes.txt');
  3. echo "document.texte.innerHTML='".$basededonnee[$numero-1]."';";


 
 
 
 

n°1311808
nargy
Posté le 22-02-2006 à 20:28:05  profilanswer
 

Note: de toutes façon, tu as besoin aussi de faire une version sans javascript. ça permet de pouvoir accueillir tous les internautes dans de bonnes conditions. L utilisation de JS rends de toutes façon ton site plus attrayant. Tu peut ajouter un tag NOSCRIPT pour indiquer à l internaute qui a éteint son JS que ton site fonctionne très bien avec JS.

n°1311811
nargy
Posté le 22-02-2006 à 20:37:45  profilanswer
 

Note2: j ai appelé la méthode que j ai décrite une JavaScript Frame. la frame est le span (ou un div), le contenu est un fichier javascript. ça permet de faire tout plein de trucs interactifs sur une page sans qu elle soit entièrement rechargée.
Tu peut même mettre une JSFrame dans un graphique Flash, afin d intégrer à la fois du javascript, du flash et du PHP sur une même page interactive (genre vidéos ou musiques interactive avec changement des couleur/polices/images de la page).

n°1311987
rufo
Pas me confondre avec Lycos!
Posté le 23-02-2006 à 09:47:24  profilanswer
 

nargy a écrit :

Note2: j ai appelé la méthode que j ai décrite une JavaScript Frame. la frame est le span (ou un div), le contenu est un fichier javascript. ça permet de faire tout plein de trucs interactifs sur une page sans qu elle soit entièrement rechargée.
Tu peut même mettre une JSFrame dans un graphique Flash, afin d intégrer à la fois du javascript, du flash et du PHP sur une même page interactive (genre vidéos ou musiques interactive avec changement des couleur/polices/images de la page).


 
les frames sont à éviter autant que possible (tout comme les iframes du reste). Pour les changements de couleur/polices/images, y'a truc qui s'appelle CSS et avec un peu de dhtml en +, on peut faire des pages très intéractives.
 
ramkin, $_GET["NomVariable"] n'est pas une fonction! C'est une variable super-globale de PHP tout comme $_POST, $_SESSION, $_SERVER... Franchement ramkin, pour faire ce que tu veux, t'as pas besoin de JS. Tu n'as qu'un fichier php (appelons le "galerie.php" ) qui affiche l'image et le commentaire (tiré d'un fichier texte dans ton cas) correspondant au numéro d'image passé en paramètre via la variable $_GET["NumImage"]. Au premier affichage, cette variable n'existe pas, faut donc tester :  

Code :
  1. if (isSet($_GET["NumImage"]))
  2. {
  3.     $NumImageAAfficher = $_GET["NumImage"];
  4. }
  5. else
  6. {
  7.     // Premier affichage
  8.     $NumImageAAfficher = 1;
  9. }
  10. // $CheminImageAAfficher va contenir un truc du genre C://www//MonSite//Images/Image5.jpg"
  11. $CheminImageAAfficher = "Chemin_et_nom_fichier".$NumImageAAfficher.".extension";


Ensuite, tu récupères le commentaire de l'image ayant pour n° celui contenu dans $NumImageAAfficher via la fonction file() (cf http://fr.php.net/manual/en/function.file.php)

Code :
  1. $ArrayContenuFichier = file("Chemin_du_fichier_texte" );


Ensuite, tu affiches ton code html et dedans tu mets un  

Code :
  1. echo "<img src=\"$CheminImageAAfficher\" title=\"Légende\" />";


Et 2 liens hypertextes pour l'image précédente et suivante (sauf si c'est la première image ou la dernière où là, tu mets qu'un lien)

Code :
  1. echo "<a href=\"galerie.php?NumImage=".($NumImageAAfficher - 1)."\" title=\"Image précédente\">Précédente</a>
  2. <a href=\"galerie.php?NumImage=".($NumImageAAfficher + 1)."\" title=\"Image suivante\">Suivante</a>";


Là, tu mets le commentaire :

Code :
  1. echo $ArrayContenuFichier[$NumImageAAfficher - 1]; // On utilise le n° de l'image comme indice pour afficher le bon commentaire, le -1 c'est parce que le tableau commence à l'indice 0


Et enfin, tu mets la fin de ton code html et ton script galerie.php est complet.

n°1312061
nargy
Posté le 23-02-2006 à 11:30:53  profilanswer
 

Citation :


les frames sont à éviter autant que possible (tout comme les iframes du reste). Pour les changements de couleur/polices/images, y'a truc qui s'appelle CSS et avec un peu de dhtml en +, on peut faire des pages très intéractives.  


 
C est pas une vraie frame, mais une manière d inclure un script javascript customizable interactivement dans une page.
 
Le CSS peut être modifié par javascript.
 
La différence entre utiliser un lien vers une page PHP et un javascript, c est que la page n a pas besoin d être rechargée avec JS. Ça permet entre autres des économies de bande passante, et de mettre une galerie photo en bas de page. L utilisation de JS, bien que rendant la page plus confortable pour l internaute, ne dispense pas de prévoir la version sans javascript.
 

n°1312095
rufo
Pas me confondre avec Lycos!
Posté le 23-02-2006 à 12:01:09  profilanswer
 

nargy a écrit :

Citation :


les frames sont à éviter autant que possible (tout comme les iframes du reste). Pour les changements de couleur/polices/images, y'a truc qui s'appelle CSS et avec un peu de dhtml en +, on peut faire des pages très intéractives.  


 
C est pas une vraie frame, mais une manière d inclure un script javascript customizable interactivement dans une page.
 
Le CSS peut être modifié par javascript.
 
La différence entre utiliser un lien vers une page PHP et un javascript, c est que la page n a pas besoin d être rechargée avec JS. Ça permet entre autres des économies de bande passante, et de mettre une galerie photo en bas de page. L utilisation de JS, bien que rendant la page plus confortable pour l internaute, ne dispense pas de prévoir la version sans javascript.


 
 
Pour économiser la bande passante, y'a AJAX (pas le produit de nettoyage, hein!). Et puis parler d'économiser de la bande passante en utilisant un js, ça suppose que tu précharge tous les commentaires et les images, non? Donc pas terrible comme économie :/

n°1312102
omega2
Posté le 23-02-2006 à 12:08:46  profilanswer
 

rufo > Ca dépend comment il prévoit ça.
L'idéal serait de récupérer une page faite de maniére à ce qu'elle fonctionne sans javascript. De plus, il faudrait que cette page ne contienne au départ que les infos de l'image en cours (commentaire compris) et que ca soit un javascript qui aille chercher les adresses et commentaires des 3-4 images autour de celle affiché et que ce même javascript une fois récupérer les infos change les liens "image précédante/image suivante" pour appeller une fonction javascript qui utilisera ces informations là. Evidement, si le visiteur demande à afficher une image au bord de la zone de sélection, on demandera les infos des images suivantes ou précédante sans effacer les infos déjà reçu.
 
En faisant comme ça, il économisera beaucoup de bande passante par rapport à la récupération de plusieurs pages et même si on ne demande qu'une seule image, on ne perdra pas grand chôse et la perte sera peut être compensé par le premier visiteur qui en demandera deux.


Message édité par omega2 le 23-02-2006 à 12:09:40
n°1312429
nargy
Posté le 23-02-2006 à 16:38:38  profilanswer
 

omega2> excellente solution. j allais le proposer ;D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Passer des variables Javasceipt dans du php

 

Sujets relatifs
Equivalent jad pour passer du .java au .jspVariables pointant vers la même valeur
est on obligé de passer pas un rdoConnection ?[VBA] Passer une variable d'un userform à un autre
[PHP&JAVASCRIPT] Probleme pour recuperer les variables d'un formulaireNoms de variables et dossier dans une boucle
passer un parametre a une fonctionpasser une variable de type array en GET
problème variables de session sur site freecomment faire passer des variables de page en page?
Plus de sujets relatifs à : Passer des variables Javasceipt dans du php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR