affichage d une fenetre avec passage de parametre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affichage d une fenetre avec passage de parametre

par donny » 09 mai 2005, 20:49

personne ne peut m eclairer

par donny » 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

par slipndi » 09 mai 2005, 10:17

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

par donny » 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 ?

par Invité » 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>

par donny » 09 mai 2005, 09:48

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

par slipndi » 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

par donny » 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 ?

par slipndi » 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:

par slipndi » 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

par Cyrano » 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é.

par donny » 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 ?

par slipndi » 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 ?

par Cyrano » 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.

par slipndi » 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 !