begin process at 2012 05 30 23:12:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

encore et toujours des pb !!! récuperer une variable à partir d'un lien


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

encore et toujours des pb !!! récuperer une variable à partir d'un lien

lundi 8 août 2005 à 11:07:59 | encore et toujours des pb !!! récuperer une variable à partir d'un lien

paulinett

Bonjour,

J'ai encore une question.
J'ai créer un formulaire de recherche de machines (liste_machine.php) et j'ai mis un lien sur ma clé primaire : nom_machine.
J'ai affecté à ce nom_machine un lien vers une page (carte_identité_machine.php) dans laquelle j'ai besoin de récupérer la valeur de nom_machine sur laquelle le user à cliquer dans la page précédente (à savoir liste_machine.php).

Comment je peux récuperer cette valeur ? merci de m'aider, je suis totalement bloquée.
J'ai mis une méthode post sur un des formulaires de ma page mais cela ne focntionne pas. Le message d'erreur me donne un undefined index !

Je vous serais vraiment reconnaissante de me "débloquer".

Voici mes codes :

liste_machine.php

<HTML>

<HEAD>
<TITLE> Recherche d'informations à propos d'une machine </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>

<BODY>

<H1> Recherche d'informations à propos d'une machine </H1>

<FORM ACTION="liste_machine.php" METHOD=POST>

<H2>Affiner la sélection grâce aux critères de recherche suivants :</H2>
 <HR>
 <PRE>
 <b>Nom de la machine : <INPUT TYPE=TEXT SIZE=20 NAME='nom_machine' VALUE='Tous'>     ET     Type de la machine : <select name="type_machine"> </b>

echo '<option value="Tous">Tous</option>';
<?php
  require_once("Connect.php");
 
 // connexion au serveur et accès à la base
  $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
  mysql_select_db (BASE, $connexion);
 
  $typeliste = mysql_query("SELECT DISTINCT type_machine FROM Machine");

  while($type_machine = mysql_fetch_array($typeliste))
  {
   echo '<option value="'.$type_machine['type_machine'].'">'.$type_machine['type_machine'].'</option>';};
   
?>
</select> <b>     <INPUT TYPE=SUBMIT VALUE='Rechercher'></b>

<HR>

</FORM>

<H2> Résultat de votre recherche </H2>


<FORM ACTION="carte_identite_machine.php" METHOD=POST>

<?php
 
 require_once("liste_machine.php"); 
  
 // Prenons les variables dans le tableau. C'est surement le bon endroit pour effectuer les contrôles.
 
 $nom_machine = $_POST['nom_machine'];
 $type_machine = $_POST['type_machine'];  
 
 // Créons la requête en tenant compte de la combinaison logique
 
 if($nom_machine == "Tous" AND $type_machine == "Tous")
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine";
 else if ($nom_machine == "Tous")
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine WHERE type_machine LIKE '%$type_machine%'";
 else if ($type_machine == "Tous")
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine WHERE nom_machine LIKE '%$nom_machine%'";
 else
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine WHERE nom_machine LIKE '%$nom_machine%' AND type_machine LIKE '%$type_machine%'";
  
 // Exécution et affichage de la requête
 $resultat = mysql_query ($requete, $connexion);


 
 if (mysql_num_rows($resultat)== 0)
  {
   echo "Il n'y a aucune machine de nom tronqué ou complet '$nom_machine' et de type '$type_machine'";
  } 
 else
  {
   echo "<CENTER><TABLE BORDER=4 CELLSPACING=2 CELLPADDING=2>"
         ."<CAPTION ALIGN=bottom>Table <I>Machine</I></CAPTION>"
         ."<TR><TH>Nom de la machine<TH>IP de la Machine<TH>Type de la machine<TH>Constructeur de la machine</TR>\n";
      $l=0;
   while ($machine = mysql_fetch_object ($resultat))
    {
     echo "<TR CLASS=A". (($l++)%2). "><TD><A HREF='http://localhost/carte_identite_machine.php'>$machine->nom_machine</A><TD>$machine->ip_machine<TD>$machine->type_machine<TD>"
           ."$machine->constructeur_machine</TR>\n";
       }
       
   echo "</TABLE></CENTER>\n";  
  } 
?>


</FORM>
</BODY>
</HTML>

carte_identite_machine.php

<HEAD>
<TITLE> Carte d'identité de la machine sélectionnée </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>

<BODY>

<H1> Carte d'identité de la machine sélectionnée </H1>
<HR>

<H2> Informations générales sur la machine </H2>
<?php
 $nom_machine = $_POST['nom_machine'];
?>
 
Le nom de la machine est la suivant : 'nom_machine';
 
</BODY>
</HTML>

lundi 8 août 2005 à 11:40:38 | Re : encore et toujours des pb !!! récuperer une variable à partir d'un lien

arnal69130

Bonjour,
Je ne vois pas de champ <input ... name="nom_machine".../> dans ton formulaire carte_identite_machine.php, la variable $_POST['nom_machine'] n'existe donc pas.
Arn;o)
lundi 8 août 2005 à 11:40:40 | Re : encore et toujours des pb !!! récuperer une variable à partir d'un lien

malik7934

Et pourquoi pas un truc du genre(l'idee) <FORM ACTION="carte_identite_machine.php?nom=<?php echo $_POST['nom_machine' ];?>" METHOD=POST> dans ton premier fichier et ensuite tu recuperes ca avec un $_GET...
lundi 8 août 2005 à 11:54:59 | Re : encore et toujours des pb !!! récuperer une variable à partir d'un lien

paulinett

J'ai essayé vos deux solutions. cela ne fonctionne pas malheureusement.
J'ai toujours un message d'erreur qui me dit :
Undefined index: nom_machine in c:\program files\easyphp1-8\www\carte_identite_machine.php on line 15

La ligne 15 représente bien $nom_machine = $_POST['nom_machine'];

---

si cette solution ne va pas. est-ce qu'un bouton détail par exemple en bout de ligen est plus facile à gérer ? le problème de récupération de la variable sera-t-il la même ?
est-ce que ce code peut etre adpater pour ce genre de solution ?

merci pour votre aide
lundi 8 août 2005 à 12:11:37 | Re : encore et toujours des pb !!! récuperer une variable à partir d'un lien

arnal69130

En fait, la 1e fois, la variable $_POST['nom_machine'] n'est pas encore défini. Pour ne pas avoir cet avertissement, il faut donc tester l'existence de la variable avant de tenter de la lire. Tu peux par exemple écrire :
if (!empty($_POST['nom_machine']
   $nom_machine=$_POST['nom_machine'];

Arn;o)
lundi 8 août 2005 à 12:25:22 | Re : encore et toujours des pb !!! récuperer une variable à partir d'un lien

paulinett

alors j'ai toujours le même problème par contre, j'ai une question.
dans mon code liste_machine.php, j'ai mon form sur carte_identite_machine qui ce situe avant du code php dans lequel on va chercher en $ _POST les variables nom_machine et type_machine. ce ne serait pas le placement de cette balise d'ouverture du formulaire sur carte_identite qui affecterait le bon fonctionnement ? si oui, ou le placer ? je suis vraiment débutante et c'est pas facile.

merci pour votre aide.
lundi 8 août 2005 à 13:11:33 | Re : encore et toujours des pb !!! récuperer une variable à partir d'un lien

arnal69130

En fait tu as 2 formulaires sur la même page. Ce n'est, a priori, pas un problème, mais il faut que tu comprennes qu'ils sont bien distincts. C'est à dire que si tu postes le 1er formulaire (celui qui pointe sur liste_machine.php), seuls les champs définis entre les 2 1e balises <form></form> seront postés. Le tableau $_POST contiendra donc (et uniquement) :
- nom_machine et
- type_machine.

En revanche, si tu valides le 2nd formulaire (celui qui pointe vers cartte_identite.php), le tableau $_POST ne contiendra rien, il n'y pas de champ défini entre les 2 secondes balises <form></form> ! D'a   illeurs, il n'y a pas non plus de bouton submit pour ce 2nd formulaire ! Au lieu de mettre un lien, mets un champ caché contenant le nom_machine et un bouton submit sur chaque ligne...

Ou alors pour afficher la carte_identité, utilises la métode GET. Dans ce cas, tu laisses les liens, et tu les fais pointer vers href="carte_identite_machine.php?nom_machine=<?php echo $_POST['nom_machine' ];?>". Ensuite, sur la page carte_identite.php, tu récupère la valeur dans nom via la tableau $_GET (et non plus POST) : $_GET['nom_machine']...

Arn;o)

lundi 8 août 2005 à 13:48:00 | Re : encore et toujours des pb !!! récuperer une variable à partir d'un lien

paulinett

Je voulais tout d'abord vous remercier pour ton aide.
Dans un premier temps j'ai tenté votre deuxième solution. j'ai une erreur de " '... à la ligne contenant le HREF.

Je vous joins le code. Je n'ai pas changé la place de mon formulaire sur la carte d'identité car il doit agir sur cette partie de code. Est-ce que je me trompe ?

liste_machine.php
<HTML>

<HEAD>
<TITLE> Recherche d'informations à propos d'une machine </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>

<BODY>

<H1> Recherche d'informations à propos d'une machine </H1>


<FORM ACTION="liste_machine.php" METHOD=POST>

<H2>Affiner la sélection grâce aux critères de recherche suivants :</H2>
 <HR>
 <PRE>
 <b>Nom de la machine : <INPUT TYPE=TEXT SIZE=20 NAME='nom_machine' VALUE='Tous'>     ET     Type de la machine : <select name="type_machine"> </b>

echo '<option value="Tous">Tous</option>';
<?php
  require_once("Connect.php");
 
 // connexion au serveur et accès à la base
  $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
  mysql_select_db (BASE, $connexion);
 
  $typeliste = mysql_query("SELECT DISTINCT type_machine FROM Machine");

  while($type_machine = mysql_fetch_array($typeliste))
  {
   echo '<option value="'.$type_machine['type_machine'].'">'.$type_machine['type_machine'].'</option>';};
   
?>
</select> <b>     <INPUT TYPE=SUBMIT VALUE='Rechercher'></b>

<HR>

</FORM>

<H2> Résultat de votre recherche </H2>
<FORM ACTION="carte_identite_machine.php" METHOD=GET>

<?php
 
 require_once("liste_machine.php"); 
  
 // Prenons les variables dans le tableau. C'est surement le bon endroit pour effectuer les contrôles.
 
 $nom_machine = $_POST['nom_machine'];
 $type_machine = $_POST['type_machine'];  
 
 // Créons la requête en tenant compte de la combinaison logique
 if($nom_machine == "Tous" AND $type_machine == "Tous")
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine";
 else if ($nom_machine == "Tous")
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine WHERE type_machine LIKE '%$type_machine%'";
 else if ($type_machine == "Tous")
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine WHERE nom_machine LIKE '%$nom_machine%'";
 else
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine WHERE nom_machine LIKE '%$nom_machine%' AND type_machine LIKE '%$type_machine%'";
  
 // Exécution et affichage de la requête
 $resultat = mysql_query ($requete, $connexion);

 if (mysql_num_rows($resultat)== 0)
  {
   echo "Il n'y a aucune machine de nom tronqué ou complet '$nom_machine' et de type '$type_machine'";
  } 
 else
  {
   echo "<CENTER><TABLE BORDER=4 CELLSPACING=2 CELLPADDING=2>"
         ."<CAPTION ALIGN=bottom>Table <I>Machine</I></CAPTION>"
         ."<TR><TH>Nom de la machine<TH>IP de la Machine<TH>Type de la machine<TH>Constructeur de la machine</TR>\n";
      $l=0;
   while ($machine = mysql_fetch_object ($resultat))
    {
     echo "<TR CLASS=A". (($l++)%2). "><TD><A HREF="carte_identite_machine.php?nom_machine=<?php echo $_POST['nom_machine'];?>">$machine->nom_machine</A><TD>$machine->ip_machine<TD>$machine->type_machine<TD>"
           ."$machine->constructeur_machine</TR>\n";
       }
       
   echo "</TABLE></CENTER>\n";  
  } 
?>
</FORM>
</BODY>
</HTML>


carte_identite_machine.php

<HTML>
<HEAD>
<TITLE> Carte d'identité de la machine sélectionnée </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>

<BODY>

<H1> Carte d'identité de la machine sélectionnée </H1>
<HR>

<H2> Informations générales sur la machine </H2>

<?php
 if (!empty($_GET['nom_machine']))
   $nom_machine=$_GET['nom_machine'];
  
  echo "Nom de la machine :" ."$nom_machine";
  
?>

<!--Nom de la machine :
<?php
  echo $nom_machine;
?>-->

</BODY>
</HTML
>

lundi 8 août 2005 à 14:19:18 | Re : encore et toujours des pb !!! récuperer une variable à partir d'un lien

arnal69130

Ok, pour le fichier cart_identité, je pense que c'est bon comme ça.

Pour utiliser la méthode get, il suffit d'écrire un lien, et de mettre les variables et leur valeursà la suite de l'url,  il n'est pas nécessaire de mettre de balise <form></form>. Quelquechose comme : <a href="index.php?nomVar1=valVar1&nomVar2=valVar2">lien</a>
Dans votre cas, essayez :
   while ($machine = mysql_fetch_object ($resultat)) {
     echo '<tr class=A'. (($l++)%2).'><td><
a href="carte_identite_machine.php?nom_machine='.$nom_machine.'">'.$machine->nom_machine.'</a></td><td>'.$machine->ip_machine.'</td><td>'.$machine->type_machine.'</td><td>'.$machine->constructeur_machine.'</td></tr>
';
       }

En fait, il ne fallait pas remmetre de <?php echo... à l'intérieur d'une instruction echo.
J'espère que ça marchera. Sinon, n'hésitez pas à donner l'erreur exacte.

Arn;o)
lundi 8 août 2005 à 14:44:50 | Re : encore et toujours des pb !!! récuperer une variable à partir d'un lien

paulinett

j'ai effectué les modif que vous m'avez indiquées plus le déclaration de if (!empty... ) = cela m'évite des désagréments au chargement de ma page.

j'ai maintenant deux cas :
- ma recherche est basée sur Tous et Tous (pour le deux champs de recherche) et dans ce cas, que je clique sur n'importe quel nom_machine en lien dans mon tableau, je récupère une variable : Tous pou le nom de la machine
- ma recherche, dans tous les autres cas, n'aboutit pas et je tombe sur Notice: Undefined variable: nom_machine in c:\program files\easyphp1-8\www\carte_identite_machine.php on line 18
Nom de la machine :

je continue de vous joindre mes codes. une grand merci pour votre aide.

liste_machine.php
<HTML>

<HEAD>
<TITLE> Recherche d'informations à propos d'une machine </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>

<BODY>

<H1> Recherche d'informations à propos d'une machine </H1>


<FORM ACTION="liste_machine.php" METHOD=POST>

<H2>Affiner la sélection grâce aux critères de recherche suivants :</H2>
 <HR>
 <PRE>
 <b>Nom de la machine : <INPUT TYPE=TEXT SIZE=20 NAME='nom_machine' VALUE='Tous'>     ET     Type de la machine : <select name="type_machine"> </b>

echo '<option value="Tous">Tous</option>';
<?php
  require_once("Connect.php");
 
 // connexion au serveur et accès à la base
  $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
  mysql_select_db (BASE, $connexion);
 
  $typeliste = mysql_query("SELECT DISTINCT type_machine FROM Machine");

  while($type_machine = mysql_fetch_array($typeliste))
  {
   echo '<option value="'.$type_machine['type_machine'].'">'.$type_machine['type_machine'].'</option>';};
   
?>
</select> <b>     <INPUT TYPE=SUBMIT VALUE='Rechercher'></b>

<HR>

</FORM>

<H2> Résultat de votre recherche </H2>
<!--<FORM ACTION="carte_identite_machine.php" METHOD=GET>-->

<?php
 
 require_once("liste_machine.php"); 
  
 // Prenons les variables dans le tableau. C'est surement le bon endroit pour effectuer les contrôles.
 
 if (!empty($_POST['nom_machine']))
  $nom_machine = $_POST['nom_machine'];
 else
  $nom_machine='Tous';
 
 if (!empty($_POST['type_machine']))
  $type_machine = $_POST['type_machine'];
 else
  $type_machine='Tous';


 // Créons la requête en tenant compte de la combinaison logique
 if($nom_machine == "Tous" AND $type_machine == "Tous")
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine";
 else if ($nom_machine == "Tous")
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine WHERE type_machine LIKE '%$type_machine%'";
 else if ($type_machine == "Tous")
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine WHERE nom_machine LIKE '%$nom_machine%'";
 else
  $requete = "SELECT nom_machine, ip_machine, type_machine, constructeur_machine FROM Machine WHERE nom_machine LIKE '%$nom_machine%' AND type_machine LIKE '%$type_machine%'";
  
 // Exécution et affichage de la requête
 $resultat = mysql_query ($requete, $connexion);

 if (mysql_num_rows($resultat)== 0)
  {
   echo "Il n'y a aucune machine de nom tronqué ou complet '$nom_machine' et de type '$type_machine'";
  } 
 else
  {
   echo "<CENTER><TABLE BORDER=4 CELLSPACING=2 CELLPADDING=2>"
         ."<CAPTION ALIGN=bottom>Table <I>Machine</I></CAPTION>"
         ."<TR><TH>Nom de la machine<TH>IP de la Machine<TH>Type de la machine<TH>Constructeur de la machine</TR>\n";
      $l=0;
   while ($machine = mysql_fetch_object ($resultat))
    {
     echo '<TR CLASS=A'. (($l++)%2).'><TD><A HREF="carte_identite_machine.php?nom_machine='.$nom_machine.'">'.$machine->nom_machine.'</A></TD><TD>'.$machine->ip_machine.'</TD><TD>'.$machine->type_machine.'</TD><TD>'.$machine->constructeur_machine.'</TD></TR>';
       }
       
   echo "</TABLE></CENTER>\n";  
  } 
?>
<!--</FORM>-->
</BODY>
</HTML>

carte_identite_machine.php

<HTML>
<HEAD>
<TITLE> Carte d'identité de la machine sélectionnée </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>

<BODY>

<H1> Carte d'identité de la machine sélectionnée </H1>
<HR>

<H2> Informations générales sur la machine </H2>

<?php
 if (!empty($_GET['nom_machine']))
   $nom_machine=$_GET['nom_machine'];
  
  echo "Nom de la machine :" ."$nom_machine";
  
?>

<!--Nom de la machine :
<?php
  echo $nom_machine;
?>-->

</BODY>
</HTML>


1 2

Cette discussion est classée dans : php, mysql, type, machine, echo


Répondre à ce message

Sujets en rapport avec ce message

Le filtre ne fonctionne pas [ par Joleroy ] Salut a tous!J ai cree une page appelé Kits.php qu j appelle par Kit.php?tipekit=type_du_kitVoici son code:$type=$_GET['typekit'];$connect = mysql_con Probleme de recuperation de données [ par eric21000 ] Bonjour Je récupère dans une table toutes mes randonnées. Parfois elles sont classées par type (Plat, montagne ...) je n'arrive pas a utiliser la va Demande Php [ par petitmozart ] Bonjour à tous, je suis un jeune debutant en Php/Mysql; en faite je suis entrain d'écrire un programme de gestion d'interface d'une base de données, Probleme pagination [ par moza2409 ] Bonjour à tous, voila j'ai un petit soucis avec mon systeme de pagination il m'affiche des erreurs je ne sais pas trop d'ou ca vient, je joins le scri passage parametres php [ par Puec ] Bonjour, Je débute en php, et je rencontre un problème.J'ai un formulaire qui contient 2 listes déroulantes contenant dont chacun des items provient d pret à me jeter par la fenetre (delete mysql) [ par sniperts ] voila je veux supprimer des champs via un formulaire dynamiquele formulaire se charge bien , mais la suppression ne fonctionne pas, qqn peut m aider!v jeu grattage/php/mysql [ par krowers ] voila j'ai un jeu de grattage qui quand j'y joue et que je gagne 0.01 point cela s'ajoute normalement a ma base de donnée tandis que quand je gagne 0 Pas de surbrillance en php ? [ par nougitch ] Bonjour, Impossible de faire un "onmouseover" et un onmouseout" dans mon code php. Ca marche très bien en HTML... Voir la balise en gras. Merci d'a ajout de colonne en plus d'une fonction mysql_fetch_array en php [ par kappablanca ] Bonjour, je suis actuellement en train de passer mon site internet en php étant donné qu'il faut y mettre à jour des tableau tous les jours.Bon je vou indentification et connexion grâce à un formulaire [ par auremy ] Bonjour,J'ai crée un formulaire html qui permet à l'utilisateur de saisir son login et son mot de passe. La validation envoye ses informations à une p


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales