Envoyer une variable dans un popup

Résolu/Fermé
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 - 17 mars 2008 à 10:12
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 - 20 mars 2008 à 11:02
Bonjour,

J'aimerai que vous m'indiquer quel code je dois exercer pour envoyer une variable dans un popup.

Je vous explique, je suis actuellement entrain de réaliser pour la 1ere fois, un site dynamique avec une vente de produits. J'ai une page avec tous les produits de la gamme choisi qui s'affiche avec leurs photos.

J'aimerai que lorsque je clique sur la photos du produit, je tombe sur la fiche détaillé de se produit, mais dans un popup.

Je vous remercie d'avance pour votre aide.
A voir également:

9 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 mars 2008 à 13:30
Re,

Tu ne vois pas ce qui cloche ? Tu ne passe aucun paramètre à ta popop up (au niveau de l'url), donc c'est normal que tu ne puisse rien afficher.

Pour faire simple, je te conseille de supprimer ton lien sur la photo, et de le simuler à la place (c'est à dire de charger ton image avec un 'onclick' et ajouter dans son style une info pour change l'aspect de la souris lors du survol de l'image par cette dernière.
Comment on fais ? Au lieu de ça :
<a href="index.php?lien=popup&numero=<?php echo $num_produit;?>", target="_blank"><img src="<?php echo $photo_produit; ?>" width="90" height="100"> <a/> 


Tu mets ça:
<a href="index.php?lien=popup&numero=<?php echo $num_produit;?>", target="_blank"><img src="<?php echo $photo_produit; ?>" width="90" height="100" style="cursor: pointer;" onclick="window.open('fiche_prod.php?numero=<?php echo $num_produit;?>','fiche','toolbar=no, location=no, directories=no, status=yes, scrollbars=no, resizable=no, copyhistory=no, width=400, height=400, left=300, top=50')" >


Et tu n'as plus besoin de faire une redirection sur une page qui t'ouvre ensuite une popup.
Ce qui est important de noté c'est :
style="cursor: pointer;"
Qui permet de changer le style du curseur au survol de la souris, afin d'avertir l'utilisateur qu'il peut cliquer sur l'image.

onclick="window.open(...
Qui te permet d'ouvrir une popup et d'y charger la page que tu souhaite lorsque l'utilisateur clique sur l'image.

'fiche_prod.php?numero=<?php echo $num_produit;?>'
Qui te permet d'appeller ta page avec le paramètre que tu souhaite (ou les paramètres s'il y en a plusieurs.

Attention : ne pas oublier que tu passe les paramètres via GET dans ton url, donc sur ta page 'fiche_prod.php' tu devra récupérer les variables via $_GET.

1
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
19 mars 2008 à 13:43
Non, toujours le même résultat, j'arrive sur une page vide. :-(

et dans ma fiche produit il j'avais deja saisi au tout début de ma page:


$num_produit = $_GET['numero'];


sinon petit compliment, je trouve que tu explique super bien ;-)
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
17 mars 2008 à 13:16
Bonjour,

Voici le code en javascript pour ouvrir une pop-up :
window.open(URL, NAME,"width=680,height=393,left=" + ((screen.width - 460)/2) + ",top=" + ((screen.height - 150)/2));


Comme tu le vois il faut passer à cette fonction, l'url de la page que tu souhaite afficher dans ta popup, son nom, et ses propriétés (tailles, placement dans la fenêtre principale)
Il te suffit de placer cette fonction dans l'évênement choisi (onclick) de ton image et ça devrait le faire.
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
17 mars 2008 à 13:19
oui le problème c'est que je ne sais pas comment faire pour qu'il sache qu'il doit chercher les informations de ce produit la dans ma base de données, et pas un autre. La fiche de produit étant entièrement faite en php et html
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
17 mars 2008 à 14:19
Est ce que ta page de détail a déjà été codée ? Si oui elle devrais donc prendre en compte un paramètre (l'identifiant du produit à afficher, afin de sélectionner les bonnes infos dans ta base de données pour afficher sur ta page)

Conclusion : dans le bout de code que je t'ai donné, mettons que ta page s'appelle index.php et qu'elle prends le paramètre id, tu devra mettre comme paramètre URL :

index.php?id=???

Comment faire pour que ce soit fait "dynamiquement" ?
Et bien lorsque tu es sur ta première page et que tu affiche la vignette d'un produit (en php donc), tu n'as qu'à ajouter dans le code php, un appel à la fonction javascript que je t'ai donné en lui donnant l'url déjà formatée (avec ton paramètre id que tu dois avoir certainement lorsque tu affiche ta vignette produit) Si tu ne l'as pas débrouille toi pour l'avoir suite à ta requête sur la base de données.
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
17 mars 2008 à 14:31
j'ai déjà essayer comme ça mais ça ne fonctionne pas.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
17 mars 2008 à 15:39

Le mieux je crois c'est que tu mette ton code ici afin que je vois ce qui est fait / pas fait.
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
19 mars 2008 à 13:07
Voila ce que j'ai saisi:

- dans ma page avec toute mes photos qui s'affiche automatiquement en php :

<a href="index.php?lien=popup&numero=<?php echo $num_produit;?>", target="_blank"><img src="<?php echo $photo_produit; ?>" width="90" height="100"> <a/>


- dans ma page de popup:

<script language="JavaScript">
{
window.open('fiche_prod.php','fiche','toolbar=no, location=no, directories=no, status=yes, scrollbars=no, resizable=no, copyhistory=no, width=400, height=400, left=300, top=50');
}
</script>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 mars 2008 à 13:48
* Merci, profite en c'est pas toujours le cas :D *

Dans ce cas montre moi le code de ta page produit.
Sinon essai d'afficher la valeur de la variable numéro que tu récupère en remplaçant :
$num_produit = $_GET['numero']; 

Par :
if ( isset($_GET['numero'] ) ){
$num_produit = $_GET['numero']; 
 echo "<BR>num produit : ".$num_produit;
}
else {
  echo "<BR>num produit non référencé";
  exit;
}

0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
19 mars 2008 à 14:08
Je te donne tout mon code:

PAGE AVEC TOUT LES PRODUITS:

<?php

if(isset($_GET['num_gammes']))
{
$num_dernier_gammes = $_GET['num_gammes'];

}


// lancement de la requete pour la gamme selectionnée


$nom="SELECT * FROM gammes_de_produit WHERE num_gamme='$num_gammes'";
$requete2 = mysql_query($nom);
$Nb2 =mysql_num_rows($requete2);

while ($detail =mysql_fetch_array($requete2) )
{
$nom_gamme = $detail['nom_gamme'];
$num_marque = $detail['num_marque'];
}

$nom2="SELECT * FROM marques WHERE num_marque='$num_marque'";
$requete3 = mysql_query($nom2);
$Nb3 =mysql_num_rows($requete3);
while ($details =mysql_fetch_array($requete3) )
{
$nom_marque = $details['nom_marque'];

}
$info = "SELECT * FROM produits WHERE num_gamme='$num_gammes' ORDER BY designation_produit ASC ";
$requete = mysql_query($info);
$Nb =mysql_num_rows($requete);




?>
<table align="center" width="100%" >
<tr>
<td >
<h1> <center> <?php echo $nom_gamme ?> de <?php echo $nom_marque?> </center> </h1>
</td>
<td width="54" align="right"><a href="index.php?lien=menuproduit"><img src="includes/images/bt_retour.gif" alt="Ajouter" border="0"/><a/></td><td width="10"></td>


</tr>
</table>
<?php

if($Nb>0)
{
$compteur =1;
while ($detail =mysql_fetch_array($requete) )
{
$num_produit = $detail['num_produit'];
$designation_produit = $detail['designation_produit'];
$gencod_produit = $detail['gencod_produit'];
$code_interne_produit = $detail['code_interne_produit'];
$masse_produit = $detail['masse_produit'];
$unite_par_carton_produit = $detail['unite_par_carton_produit'];
$carton_par_niveau_produit = $detail['carton_par_niveau_produit'];
$niveau_par_palette_produit = $detail['niveau_par_palette_produit'];
$dlc_produit = $detail['dlc_produit'];
$photo_produit = $detail['photo_produit'];
$prix_xw_produit = $detail['prix_xw_produit'];
$prix_fca_produit = $detail['prix_fca_produit'];
$prix_fcbelge_produit = $detail['prix_fcbelge_produit'];
$delais_moyen_mis_a_disposition_produit = $detail['delais_moyen_mis_a_disposition_produit'];


?>
<input name="num_produit" type="hidden" size="20">

<table>

<tr></tr>
<tr valign="top">
<td width="150" height="63" align="center"><p><font color="#000000"><b><?php echo $designation_produit ?></b></font></p></td>
</tr>
<tr>
<td width="100" height="110" align="center">
<?php ("Content-type:" .$photo_produit);?>

<a href="index.php?lien=popup&numero=<?php echo $num_produit;?>", target="_blank"><img src="<?php echo $photo_produit; ?>" width="90" height="100" style="cursor: pointer;" onclick="window.open('fiche_prod.php?numero=<?php echo $num_produit;?>','fiche','toolbar=no, location=no, directories=no, status=yes, scrollbars=no, resizable=no, copyhistory=no, width=400, height=400, left=300, top=50')" >

</td>
</tr>

</table>
<?php
if(($compteur % 8)== 0)
{
echo "<div class=Clear></div>";
}
$compteur++;
}
}
?>
</body>
</html>




FICHE PRODUIT:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>



<?php
if ( isset($_GET['numero'] ) )
{
$num_produit = $_GET['numero'];
echo "<BR>num produit : ".$num_produit;
}
else
{
echo "<BR>num produit non référencé";
exit;
}


//requete pour recuperer les caracteristiques du produit

$info = "SELECT * FROM produits WHERE num_produit ='$num_produit'";
$requete = mysql_query($info);
while ($detail =mysql_fetch_array($requete) )
{
$num_produit = $detail['num_produit'];
$designation_produit = $detail['designation_produit'];
$gencod_produit = $detail['gencod_produit'];
$code_interne_produit = $detail['code_interne_produit'];
$masse_produit = $detail['masse_produit'];
$unite_par_carton_produit = $detail['unite_par_carton_produit'];
$carton_par_niveau_produit = $detail['carton_par_niveau_produit'];
$niveau_par_palette_produit = $detail['niveau_par_palette_produit'];
$dlc_produit = $detail['dlc_produit'];
$photo_produit = $detail['photo_produit'];
$prix_xw_produit = $detail['prix_xw_produit'];
$prix_fca_produit = $detail['prix_fca_produit'];
$prix_fcbelge_produit = $detail['prix_fcbelge_produit'];
$delais_moyen_mis_a_disposition_produit = $detail['delais_moyen_mis_a_disposition_produit'];
$num_gamme = $detail['num_gamme'];

//requete pour recuperer les caracteristiques de la gamme choisie

$req_type2 = mysql_query("SELECT * FROM gammes_de_produit WHERE num_gamme = '$num_gamme'");

while($data_type2 = mysql_fetch_array($req_type2))
{
$num_gamme= $data_type2['num_gamme'];
$nom_gamme= $data_type2['nom_gamme'];
$num_marque= $data_type2['num_marque'];

//requete pour recuperer les caracteristiques de la marque choisie

$req_type3 = mysql_query("SELECT * FROM marques WHERE num_marque = '$num_marque'");

while($data_type3 = mysql_fetch_array($req_type3))
{
$num_marque= $data_type3['num_marque'];
$nom_marque= $data_type3['nom_marque'];

}
}
?>

<table >
<tr>
<td style="color:#FF0000" colspan="4"><b><u> Fiche produit de :<? echo $designation_produit ?></u></b></td>
</tr>
<tr>
<td> </td>

</tr>
<tr> </tr>
</table>
<table>
<tr>
<td width="4%" ><font color="#000000"><b>Marque et gamme :</b></font></td><td><?php echo $nom_marque?> <?php echo $nom_gamme ?></td>
</tr>
<tr>
<td width="4%" ><font color="#000000"><b>Gencod :</b></font></td><td><? echo $gencod_produit ?></td>
</tr>
<tr>
<td width="10%"><font color="#000000"><b>Code interne :</b></font></td><td><? echo $code_interne_produit ?></td>
</tr>
<tr>
<td width="10%"><font color="#000000"><b>Masse :</b></font></td><td><? echo $masse_produit ?></td>
</tr>
<tr>
<td><font color="#000000"><b>Unité par carton :</b></font></td><td><? echo $unite_par_carton_produit ?></td>
</tr>
<tr>
<td><font color="#000000"><b>Carton par niveau : </b></font></td><td><? echo $carton_par_niveau_produit ?></td>
</tr>
<tr>
<td width="13%" ><font color="#000000"><b>Niveau par palette :</b></font></td><td><? echo $niveau_par_palette_produit?></td>
</tr>
<tr>
<td width="26%"><font color="#000000"><b>Date limite de consommation :</b></font></td><td><? echo $dlc_produit ?></td>
</tr>
<tr>
<td><font color="#000000"><b>Prix exw :</b></font></td><td><? echo $prix_xw_produit ?> €</td>
</tr>
<tr>
<td><font color="#000000"><b>Prix fca : </b></font></td><td><? echo $prix_fca_produit ?> €</td>
</tr>
<tr>
<td width="13%" ><font color="#000000"><b>Prix fcbelge :</b></font></td><td><? echo $prix_fcbelge_produit?> €</td>
</tr>
<tr>
<td width="26%"><font color="#000000"><b>Délai moyen mis à disposition :</b></font></td><td><? echo $delais_moyen_mis_a_disposition_produit ?></td>
</tr>
<tr>
<td width="100" height="110" align="center">
<?php ("Content-type:" .$photo_produit);?>
<img src="<?php echo $photo_produit; ?> "width="100" height="130" />
</td>
</tr>
</table>

</body>
</html>
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
19 mars 2008 à 14:19
comme tu vois avec ce que tu m'as écris ça ne fonctionne toujours pas.

je suis sure que c'est une erreur toute bête. mais bon je ne la trouve pas
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
19 mars 2008 à 14:53
a oui il y a un popup qui s'affiche quand même mais j'ai un message d'erreur.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 mars 2008 à 15:59
C'est quoi comme message d'erreur exactement ?
Le numéro tu arrive à le reprendre correctement dans la popup ?

Sinon il faudrait que tu supprime ce code là :
<a href="index.php?lien=popup&numero=<?php echo $num_produit;?>", target="_blank">

Il ne sert à rien.
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
19 mars 2008 à 16:10
je travail directement sur internet car en local ça ne fonctionne pas, pourquoi? ça c'est encore une bonne question lol, et j'utilise free comme hébergeur gratuit. le message d'erreur est donc celui de free.

Sinon j'ai enlevé la partie que tu m'as signalé, ça donne mieux, on moins je n'ai pas une page blanche et le popup apparait directement au dessus des produit même si c un message d'erreur qui est a l'interieur , ça donne mieux ;)
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857 > boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010
19 mars 2008 à 17:08
Ok donc à priori le message d'erreur est plus lié à ta page que le passage de la variable.
Est ce que tu peux me mettre ce message d'erreur de manière à savoir quoi chercher comme type d'erreur ou si c'est une question trop "indiscrète" ?
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1 > kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
19 mars 2008 à 17:51
je ne comprends pas trop ton message, tu veux que j'écrive ce que free m'affiche? c'est bien ca?

si c'est le cas il est marqué :

L'erreur 404 est un code d'erreur dans le protocole HTTP. Ce code est renvoyé par un serveur HTTP pour indiquer que la ressource demandée (généralement une page web) n'existe pas. Certains navigateurs web affichent alors le message « 404 File Not Found » (de l'anglais signifiant « fichier non trouvé ») à destination de l'internaute.

Le premier 4 indique une erreur dans la requête, ici une mauvaise URL, venant d'une page obsolète ou d'une erreur de saisie d'adresse web de la part du visiteur. Le dernier 4 indique le problème causé par cette erreur : la ressource est introuvable.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857 > boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010
19 mars 2008 à 17:59
Oui c'est bien ce que je souhaitais savoir.
404 -> fichier introuvable comme tu le dis.
Cette erreur s'affiche dans la popup c'est bien ça ?

Si oui cela veut dire qu'il ne trouve effectivement pas la page 'fiche_prod.php'.
Est ce que cette page est présence au même endroit que ta page avec tous tes produits (même répertoire).
Si ce n'est pas le cas il faut que tu rectifie le chemin d'accès au fichier 'fiche_prod.php' afin qu'il soit trouvé. Il te faut donc inclure le chemin d'accès à 'fiche_prod.php' depuis ton script/ta page qui affiche tous tes produits.

Si par exemple tu as ton répertoire Root dans lequel tu as :

Root
|- page1.php (page affichage de tous les résultats)
|
|- detail
|- fiche_prod.php (page détails d'un produit)

Il faudra indiquer 'detail/fiche_prod.php?...' dans le nom de fichier passé à l'instruction 'window.open(...)'
Si au contraire tu as ce type d'arborescence :

Root
|- fiche_prod.php (page détails d'un produit)
|
|- divers
|- page1.php (page affichage de tous les résultats)

Il faudra que tu donne le chemin suivant : '../fiche_prod.php'
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1 > kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
19 mars 2008 à 18:02
oui j'ai bien fait attention à bien mettre tout dans le même répertoire
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 mars 2008 à 18:06
Et sur le serveur tous les fichiers ont été mis à jour correctement (via ton client FTP tu vois bien les fichiers après raffraichissement)?
Bizarre bizarre. Ca doit être une erreur bête (comme toujours ^^) mais j'ai du mal a voir. La nuit porte conseille dis on, à demain donc.
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
19 mars 2008 à 18:20
oui tout est dans le même répertoire,

sinon passe une bonne nuit, même si il est un peu tôt lol.

et je te remercie pour ton aide ;-)
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
20 mars 2008 à 09:57
j'espere que tu as bien dormi et que ta nuit t'a été bénéfique ;-) lol.

moi je n'ai pas arrêté de penser à ca lol, ça me tracasse de ne pas réussir.



j'ai mis location=yes pour voir si il cherche bien la bonne page, et oui il est marqué:


fiche_prod.php?numero=128


donc ca indique bien qu'il doit m'afficher ma fiche du produit que j'ai cliqué dessus, on moins on c'est que la variable est transmise
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
20 mars 2008 à 10:23
Oui c'est déjà ça de vérifier. Peux tu essayer de ne pas transmettre la variable justement, c'est à dire de mettre comme url, uniquement : fiche_prod.php

J'ai l'impression que c'est à cause du passage de paramètre que la page n'est pas trouvée. Si c'est le cas il s'agit d'un "problème" de configuration (je pense) du serveur free. Il faudrait t'informer auprès du service "conseiller" (s'il y en a un) de free et leur poser la question (si c'est le cas).
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
20 mars 2008 à 10:42
lol, c'est bon j'ai trouvé, j'avais oublié de faire ma connection dans ma base de donnée pour la fiche produit.

on l'avais ca que c'était un truc tout bête mdr.

en tout cas je te remercie pour ton aide.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
20 mars 2008 à 10:58
Ok tant mieux. Je ne comprends pas pourquoi une erreur 404 était affichée dans ce cas là. Ressource non trouvée, ça faisait donc référence à la connexion sur la base qui était manquante, mais bon, leur message n'est pas très explicite ^^

Tant mieux si ça fonctionne.

Bon courage pour la suite. ++
0
boony Messages postés 44 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 25 juillet 2010 1
20 mars 2008 à 11:02
Je te remercie, passe une bonne journée, et si j'ai un autre problème je ferais appel à toi lol.

si on pouvait noté ce qui nous ont aider je t'aurais mis la meilleure note ;-)
0