affichage d une fenetre avec passage de parametre

Eléphant du PHP | 406 Messages

09 mai 2005, 08:24

salut,

J ai creer un tableau et des que le curseur de la souris passe dessus la ligne ou il se trouve se met en surbrillance et ce que je voudrais c est que des qu on clique sur cette ligne une nouvelle fenetre apparaisse contenant tous les element de la ligne dans un formulaire .


Et je vois vraiment pas comment faire passer les donnée du tableau dans un formulaire en cliquant sur la ligne?

Merci

Eléphant du PHP | 281 Messages

09 mai 2005, 08:46

Bonjour ;)

Enfaite il faut que tu envoi les différentes infrmations par la query string.
Pour envoyer des infos de cette manière il te suffit de crée des liens du type :

Code : Tout sélectionner

www.monadresse.fr?var1=valeur&var2=valeur
dans ton cas je genererai mon tableau en php et je ferais des liens généré de ce type !

Mammouth du PHP | 19672 Messages

09 mai 2005, 08:48

Il faut que tu utilises un gestionnaire d'évènement JavaScrip avec une redirection vers la page en question: il faut bien entendu que l'adresse de redirection comporte les paramètres par rapport à cette ligne de ton tableau.
Sans JavaScript, il serait quand même plus simple de mettre des liens html dans un des éléments de la ligne du tableau.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 281 Messages

09 mai 2005, 08:51

je vais avoir l'air bête cyrano mais pourquoi passé par le js ? c'est un problème que l'on peut résoudre purement par php vue que c'est lors d'un click non ?

Eléphant du PHP | 406 Messages

09 mai 2005, 09:01

en faite je met un lien sur une cellule du tableau genre

<td><a href="www.monadresse.fr?ar1=valeur&var2=valeur></a></td>

et dans la nouvelle page j aurai var1 et var2 dans l url et j aurai plus qu a les coller dans les champs ?

et je voulais savoir mon tableau je le remplis a partir de ma base de donnée, sa ne pose pas de probleme ?

Mammouth du PHP | 19672 Messages

09 mai 2005, 09:03

je vais avoir l'air bête cyrano mais pourquoi passé par le js ? c'est un problème que l'on peut résoudre purement par php vue que c'est lors d'un click non ?
Justement non slipndi, tu inverses là: le PHP s'exécutant coté serveur, il ne capte pas les évènement. Donc il faut un langage client pour le faire et JavaScript est tout indiqué.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 281 Messages

09 mai 2005, 09:05

non au contraire ca te simplifie le travail oui pour l'envoi c'est ca ensuite dans ta page de récupération des infos tu récupère les variables par cette méthode :
<?php $var1=$_GET['var1']; ?>
<INPUT type="text" name="var1" value="<?php echo($var1)?>">
et ici par exemple ton champ de texte aura la valeur var1 envoyé précedement

Eléphant du PHP | 281 Messages

09 mai 2005, 09:07

Justement non slipndi, tu inverses là: le PHP s'exécutant coté serveur, il ne capte pas les évènement. Donc il faut un langage client pour le faire et JavaScript est tout indiqué.
Ben oui mais enfaite le script js qui existe c'est pour la surbrillance mais son problème c'est juste l'envoi des variables d'une page à une autre, enfin si j'ai bien compris :oops: enfin si j'ai tord désolé d'induire en erreur :oops: :oops:

Eléphant du PHP | 406 Messages

09 mai 2005, 09:25

ouai c est cela et je voulais savoir si je pouvais faire un passage de parametre avec un lien tout simple ?

Eléphant du PHP | 281 Messages

09 mai 2005, 09:28

Ben si tu ve faire un passage de paramètre dans un lien tout simple il faut utilisé un formulaire d'envoi couplé à la méthode post

Eléphant du PHP | 406 Messages

09 mai 2005, 09:48

je suis obligé de mettre les balise <form method post action> </form>
?

Invité
Invité n'ayant pas de compte PHPfrance

09 mai 2005, 10:03

voici une solution basée sur javascript (et donc avec tous les inconvénients de ce dernier)

L'idée est de passer un id unique d'un produit à une page qui en affiche le détail. Pour ce faire, deux pages sont nécéssaires :
La page principale "fenetre_base.php"
<script>
var derniere_ligne;
function selectionner(ligne){
  if (derniere_ligne != null && derniere_ligne.style != null ) {
		derniere_ligne.style.background = '' ;
		derniere_ligne.style.color = '' ;	
   }
   ligne.style.background = 'yellow';
   ligne.style.color = 'blue';
	
   derniere_ligne = ligne;
}
function ouvrirFenetre(id){
var URL = "http://127.0.0.1:8080/fenetres/sous-fenetre.php?id=" + id;
window.showModalDialog(URL,self,"dialogWidth:400px;dialogHeight:400px;center:1;scroll:0;help:0;status:0");
}
</script>

<table>
<tr><th>Id<th>Nom
<tr onMouseMove='selectionner(this)' onClick='ouvrirFenetre(1)'>
<td>1
<td>Produit 1
<tr onMouseMove='selectionner(this)' onClick='ouvrirFenetre(2)'>
<td>2
<td>Produit 2
<tr onMouseMove='selectionner(this)' onClick='ouvrirFenetre(3)'>
<td>3
<td>Produit 3
</table>
Attention: les données sont présentées en dur, il faut ajouter du PHP pour dynamiser.

La deuxième qui affiche le détail d'un id sélectionné dans une fenetre popup modale : "sous-fenetre.php" :
<?
$id = isset($_GET["id"])?$_GET["id"]:null;
$nom = $prix = $en_stock = $message =  "";

if ($id == 1) {
	$nom = "Produit 1";
	$prix = 25.00;
	$en_stock = "En stock";
}
else
if ($id == 2) {
	$nom = "Produit 2";
	$prix = 10.00;
	$en_stock = "En stock";
}
else
if ($id == 3) {
	$nom = "Produit 3";
	$prix = 5.00;
	$en_stock = "rupture";
}
else
  $message = "Produit inconnu!";

echo "
<h1>Info produit</h1><hr>
<table>
";
if ($message == "")
echo "
<tr><th>Id: <td>$id
<tr><th>Nom: <td>$nom
<tr><th>Prix: <td>$prix
<tr><th>Disponibilité: <td>$en_stock
";
else
echo "
<tr><td>$message
";

echo "
</table>
";
?>
<style> th{text-align:right}</style>
Attention: là aussi les données du détail des produits déterminées par id sont données ici en dur pour des soucis d'exemple. A remplacer par une requête SQL de type SELECT * FROM Produit WHERE id='$id'

Une autre solution peut être envisageable pour éviter javascript c'est d'utiliser un lien Hypertexte par ligne produit telque :
<tr><td><A Href="sous-fenetre.php?id=1">1</A>

Eléphant du PHP | 406 Messages

09 mai 2005, 10:15

merci

et pour ta deuxieme solution en utilisant un lien tout simple
<tr><td><A Href="sous-fenetre.php?id=1">1</A>

cela affichera directement le id dans l url et je n aurai qu a le recuperer pour executer ma requete si j ai bien compris ?

Eléphant du PHP | 281 Messages

09 mai 2005, 10:17

Ben oui ca deuxieme solution c'est l'equivalent de la mienne et c cela meme:)

Eléphant du PHP | 406 Messages

09 mai 2005, 16:22

pour le code javascript
c est normal que quand j essai de mettre des champs texte dans les cellule du tableau rien ne s affiche ,sa s affiche mais on ne voi pas le champs texte .?

Code : Tout sélectionner

if ($message == "") echo " <tr><td>Id: </td><td><input type=\"text\" name=\"id\" value=\"$id\"></td></tr>
ja i l impression que sa viens de la fenetre, je pourrai pas avoir une fenetre normal que je fixerai moi meme et qui garde la barre d adresse