Récupération des données

Résolu/Fermé
Chouberit Messages postés 21 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 13 juin 2013 - 6 juin 2013 à 00:00
Chouberit Messages postés 21 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 13 juin 2013 - 8 juin 2013 à 23:50
Bonsoir
j'ai déjà poser la question mais j'ai eu aucune réponse alors je la pose d'une autre manière.
j'ai une table LOUE qui contient une clé composé (numcl_r et num _v) dans ma page j'affiche toute la liste et je dois coché Radio pour rédiger un contrat pour la ligne coché, le problème qui se pose c'est que je ne sais pas comment récupérer cette clé composé pour l'envoyer vers une autre page( je suis débutante en PHP et je prépare mon PFE ).
voici mon morceau de code :
<?php while($loue=mysql_fetch_array($resultat2)) { ?>
<tr>
<td><INPUT type="radio" name="loue" ></td>
<td><?php echo $loue['numcl_r'];?></td>
<td><?php echo $loue['nomcl'];?> </td> <!-- je récupere cette donné d'une autre table (joiture)
<td><?php echo $loue['precl'];?> </td><!-- celle ci aussi-->
<td><?php echo $loue['numv_r'];?> </td>
<?php } ?>
Merci pour votre aide

7 réponses

Franky do Messages postés 15 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 6 juin 2013 2
Modifié par Franky do le 6/06/2013 à 00:35
Faut que ton input ai un => value="la valeur que tu veux" comme ceci :

<INPUT type="radio" name="loue" value="la valeur que tu veux" />

Ton formulaire doit commencer et finir par un form, faut choisir le method get ou post.



<form action="demo_form.php" method="get">
   First name: <input type="text" name="fname"><br>
   Last name: <input type="text" name="lname"><br>
   <input type="submit" value="Submit">
 </form>


Pour récupéré les données de fname si le method est get:

echo $_GET['fname'];


si c'est post :

echo $_POST['fname'];



Si tu veux voir toute les variable qui sont déclaré dans ton formulaire :

si c'est get
<pre><?php print_r($_GET); ?></pre>


si c'est post
<pre><?php print_r($_POST); ?></pre>


Ne pas oublier que les variable son récupérable seulement sur la page défini dans action :

<form action="demo_form.php" method="get">
   First name: <input type="text" name="fname"><br>
   Last name: <input type="text" name="lname"><br>
   <input type="submit" value="Submit">
 </form>

Seul les génies constatent les erreurs !
0
Bonjour

Il faut ajouter à ton bouton radio une valeur pour savoir lequel a été sélectionné.
Puisque ta clé est composée, tu peux utiliser les deux parties en les séparant par un caractère spécial pour être capable de découper la valeur quand tu recevras le formulaire.
Exemple :

<INPUT type="radio" name="loue" value="<?php echo $loue['numcl_r'], '!', $loue['numv_v'] ?>">
0
Chouberit Messages postés 21 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 13 juin 2013
6 juin 2013 à 00:59
<?php
$connexion=mysql_connect("localhost","root","");
mysql_select_db("glv");
if(isset($_GET['cle']))
{
$requete2="SELECT numv_r,numcl_r,numcl,nomcl,precl FROM loue,client where numcl_r=numcl and nomcl LIKE '%".$_GET['cle']."%' ";
}
else
{
$requete2="SELECT numv_r,numcl_r,numcl,nomcl,precl FROM loue,client where numcl_r=numcl ";
}
$resultat2=mysql_query($requete2);

?>
<!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>Untitled Document</title>
</head>
<body>
<form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>
<label>Recherche :
<input type="text" name="cle" />
</label>
</p>
<p>
<label>
<input type="submit" name="bouton" value="Envoyer" />
</label>
</p>
</form>
<br/>
<table width="600" border="0" cellspacing="0" cellpading="5">
<tr>
<td></td>
<td>N° d'inscription</td>
<td>Nom </td>
<td>Prénom </td>
<td>Numéro du véhicule</td>
</tr>
<?php while($loue=mysql_fetch_array($resultat2)) { ?>
<tr>
<td><INPUT type="radio" name="loue" value="<?php echo $loue['numcl_r'], '!', $loue['numv_v'] ?>"> </td>
<td><?php echo $loue['numcl_r'];?></td>
<td><?php echo $loue['nomcl'];?> </td><!-- je récupere cette donné d'une autre table (joiture)-->
<td><?php echo $loue['precl'];?> </td><!-- celle ci aussi-->
<td><?php echo $loue['numv_r'];?> </td>
<?php } ?>
</tr>
<tr>
<td>
<a href="redactioncontrat.php?numcl_r=<?php echo $loue['numcl_r'];?>&numv_r=<?php echo $loue['numv_r']?>">
<input type="submit" name="validation" value="Rédiger" /></a></td></tr>
</table>
</body>
</html>
-------------------------------------------------------------------
la page "redactioncontrat.php"



<?php
$connexion=mysql_connect("localhost","root","");
mysql_select_db("glv");
$requete="Select numcl,nomcl,precl,numcl_r,numv_r,matv,marv,modv from client,loue,véhicule where numcl_r='".$_GET['numcl_r']."' and numv_r='".$_GET['numv_r']."' and numcl_r=numcl and numv_r=numv ";
$resultat=mysql_query($requete);
$client=mysql_fetch_array($resultat);

?>
<!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>Untitled Document</title>
</head>

<body>
<?php echo $client['nomcl']; ?>
<?php echo $client['precl'] ;?>



</body>
</html>
-------------------------------------------------------------------
ça ne marche pas il ne récupère pas la clé :/
Mercii :)
0
1 - Je cite :
<?php echo $loue['numcl_r'], '!', $loue['numv_v'] ?>
Select numcl,nomcl,precl,numcl_r,numv_r,matv,marv,modv

Alors, numv_r ou numv_v ? Déjà, dans ton premier post, on voyait apparaître tantôt num _v, tantôt numv_r

2 - Quand je vois ton formulaire complet, je me rends compte qu'il est incohérent. Ta boucle while($loue=mysql_fetch_array($resultat2)) ne se referme pas au bon endroit. Et tu as un lien (mais en dehors de la boucle, alors qu'il devrait être à l'intérieur) qui semble jouer le même rôle que le bouton de validation.
Si l'utilisateur fait son choix en cliquant sur un lien différent par possibilité, le lien doit être dans la boucle et tu n'as pas besoin de bouton radio ni de bouton validation. Ça me semble être la meilleure solution, surtout que toute cette partie n'étant pas dans un formulaire (pas de balise <form></form>), le bouton ne doit rien envoyer d'autre que lui-même
Je te suggère :

<table width="600" border="0" cellspacing="0" cellpading="5"> 
<tr> 
<td>N° d'inscription</td> 
<td>Nom </td> 
<td>Prénom </td> 
<td>Numéro du véhicule</td> 
<td>&nbsp;</td>
</tr> 
<?php while($loue=mysql_fetch_array($resultat2)) { ?> 
<tr>  
<td><?php echo $loue['numcl_r'];?></td> 
<td><?php echo $loue['nomcl'];?> </td><!-- je récupere cette donné d'une autre table (joiture)--> 
<td><?php echo $loue['precl'];?> </td><!-- celle ci aussi--> 
<td><?php echo $loue['numv_r'];?> </td> 
<td><a href="redactioncontrat.php?numcl_r=<?php echo $loue['numcl_r'];?>&numv_r=<?php echo $loue['numv_r']?>">Rédiger</a></td>
</tr>
<?php } ?> 
</table> 
0
Chouberit Messages postés 21 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 13 juin 2013
6 juin 2013 à 10:34
Bonjour,
num_v je m'étais trompé je voulais dire numv_r.
j'ai mis un bouton en dehors de la boucle while car je ne voulais pas affiché plusieurs liens,en plus j'ai une liste de client et je voulais juste sélectionné l'un d'eux et envoyé la clé composé pour lui rédigé le contrat . je ne sais pas si mon idée est juste et se que je fais est juste ,je m'y connais pas vraiment en PHP.
Merci pour votre réponse Bonne journée.
0
Utilisateur anonyme
6 juin 2013 à 11:35
Si tu ne veux pas plusieurs liens, alors il ne te faut pas de lien du tout mais un formulaire avec des boutons radio. Entre nous, cliquer sur un bouton radio + valider au lieu de cliquer directement sur un lien, je ne vois pas très bien l'avantage, ça oblige ton visiteur à faire 2 opérations au lieu d'une seule.

Dans le code que tu as posté, cette partie-là n'EST PAS dans un formulaire (pas de <form></form> et ne risque donc pas d'envoyer d'informations. Tu as été obligé de mettre ton bouton de validation en lien hypertexte (<a href="..>) ce qui est parfaitement anormal.
Tiens-tu absolument à la solution avec bouton radio et formulaire ?
0

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

Posez votre question
Chouberit Messages postés 21 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 13 juin 2013
6 juin 2013 à 12:04
j'arrive pas a voir exactement comment faire car après qu'il est choisit le client il doit choisir si il a réservé avec ou sans chauffeur (je ne l'ai pas encore fais) si avec il choisit le nom du chauffeur (option) et l'envoie avec la clé composé si non envoie que la clé :/ c'est pour ça j'ai mis le bouton de validation .
0
Utilisateur anonyme
6 juin 2013 à 12:13
Effectivement, s'il doit y avoir d'autres informations, il faut passer par le formulaire.
Je reviens en début d'après-midi
0
Chouberit Messages postés 21 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 13 juin 2013
6 juin 2013 à 12:23
on vient de me proposé d'enlevé la clé composé et ajouté une clé primaire auto incrémentale (bâcler mon travaille pour que ça marche ) .
0
Utilisateur anonyme
6 juin 2013 à 13:15
Utiliser une clé primaire auto incrémentale est a priori une bonne idée, mais je ne sais rien de ta base de données ni de ton besoin, je ne peux pas décider pour toi de ce qui est préférable. J'ai supposé que si tu avais choisi une clé composée, c'était que tu avais besoin d'une clé composée.

D'ailleurs ça ne change pratiquement rien à ton problème initial, qui était que tu essayais d'envoyer des informations :
- sans value sur le bouton radio, donc sans possibilité de savoir quel bouton était appuyé
et surtout
- sans formulaire, donc aucun champ de formulaire n'était envoyé.
Ces deux points n'ayant aucun rapport avec le fait que ta clé soit simple ou composée.
0
En restant sur la clé composée, ça pourrait donner (j'ai souligné les principales modifications et j'ai utilisé la méthode POST, préférable d'une manière générale) :
<form method="post" action="redactioncontrat.php">
<table width="600" border="0" cellspacing="0" cellpading="5"> 
<tr> 
<td></td> 
<td>N° d'inscription</td> 
<td>Nom </td> 
<td>Prénom </td> 
<td>Numéro du véhicule</td> 
</tr> 
<?php while($loue=mysql_fetch_array($resultat2)) { ?> 
<tr> 
<td><INPUT type="radio" name="loue" value="<?php echo $loue['numcl_r'], '!', $loue['numv_r'] ?>"> </td> 
<td><?php echo $loue['numcl_r'];?></td> 
<td><?php echo $loue['nomcl'];?> </td><!-- je récupere cette donné d'une autre table (joiture)--> 
<td><?php echo $loue['precl'];?> </td><!-- celle ci aussi--> 
<td><?php echo $loue['numv_r'];?> </td> 
</tr> 
<?php } ?> 
</table>
<input type="submit" name="validation" value="Rédiger" />
</form>


Et, pour récupérer tes données dans redactioncontrat.php :

$tb=explode("!",$_POST['loue']);
$numcl_r=$tb[0];
$numv_r=$tb[1];
0
Chouberit Messages postés 21 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 13 juin 2013
6 juin 2013 à 16:06
ça marche :D mercii beaucoup j'ai appris un nouveau truc aujourd'hui (mais j'ai changé la method en GET pour que ça marche )
0
Utilisateur anonyme
6 juin 2013 à 20:30
Tu as tort, il vaut mieux garder la méthode POST, mais bon....
0
Chouberit Messages postés 21 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 13 juin 2013
6 juin 2013 à 22:11
ça n'a pas marché avec la méthod POST
0
Utilisateur anonyme
6 juin 2013 à 22:33
Ce n'est pas la méthode POST qui ne marche pas, c'est que tu as commis une erreur. Si tu as envie de creuser le sujet, montre ton essai avec la méthode post
0