Résolu [PHP]Récupération de variable via Radio

Solutions (3)
Tags :
  • Script
  • Php
  • Radio
  • MySQL
  • Programmation
|
Bonjour,

Je continue actuellement a bosser sur un script php permettant la saisie et l'enregistrement de donnée. L'utilisateur peut saisir une demande via un formulaire, puis la consulter via un tableau. Depuis ce tableau il peut sélectionner une demande d'un simple clique sur un bouton radio (correspondant à la demande) et accéder au formulaire pré-remplit de la demande comme nous le montre ce script :
  1. <?php
  2.  
  3. include ("connexion.php");
  4.  
  5. $req1="SELECT * FROM demande WHERE `id`=".$_POST['num'];
  6.  
  7. $demande=mysql_query($req1) or die("erreur".mysql_error());
  8.  
  9. $result=mysql_fetch_array($demande);
  10.  
  11.  
  12.  
  13. ?>
  14.  
  15. <form id="fr1" name="form1" method="post" action="modification_dem_abs.php">
  16.  
  17. <table border="0" cellpadding="0" cellspacing="0" width="100%" bordercolor="#FF3300">
  18.  
  19. <tr align="center">Numéro demande : <input type="text" name="id" value="<?echo $result['id'];?>" readonly="readonly"/></tr></br>
  20. <tr align="center">Nom demandeur : <input type="text" name="nom_dem" value="<?php echo $result['nom_dem'];?>"/></tr></br>
  21. <tr align="center">Nom rédacteur : <input type="text" name="nom_redac" value="<?php echo $result['nom_redac'];?>"/></tr></br>
  22. <tr align="center">Numéro chantier : <input type="text" name="num_chan" value="<?php echo $result['num_chan'];?>"/></tr></br>
  23. <tr align="center">Nom du site : <input type="text" name="libel" value="<?php echo $result['libel'];?>"/></tr></br>
  24.  
  25. <?php $Agence = array(13, 31, 42, 69, 92);
  26. echo '<tr align="center">Agence : ';
  27. foreach($Agence as $ag) {
  28. if ($ag == $result['agence']) {
  29. echo $ag, '<input type="radio" name="agence" value="$ag" checked="checked" />';
  30. } else {
  31. echo $ag, '<input type="radio" name="agence" value="$ag" />';
  32. }
  33. }
  34. echo '</tr>', chr(13), chr(10);
  35. ?>
  36.  
  37. </br>
  38.  
  39. <?php $Plan = array('oui','non');
  40. echo '<tr align="center">Plan et architecture disponible au BE : ';
  41. foreach($Plan as $pl) {
  42. if ($pl == $result['plan']) {
  43. echo $pl, '<input type="radio" name="plan" value="$pl" checked="checked" />';
  44. } else {
  45. echo $pl, '<input type="radio" name="agence" value="$pl" />';
  46. }
  47. }
  48. echo '</tr>', chr(13), chr(10);
  49. ?>
  50.  
  51. </br>
  52.  
  53. <tr align="center">Date de la demande : <input type="text" name="date_dem" value="<?php echo $result['date_dem'];?>"/> (format : AAAA/MM/JJ)</tr></br>
  54. <tr align="center">Date de réalisation : <input type="text" name="date_real" value="<?php echo $result['date_real'];?>"/> (format : AAAA/MM/JJ) *Si modification de la date de réalisation, envoyer un mail à <a href="mailto:bertrand.gougis@fr.prosegur.com">Bertrand Gougis</a> ou à <a href="mailto:alain.tardy@fr.prosegur.com">Alain Tardy</a></tr></br>
  55.  
  56. <?php
  57.  
  58. $ProgramInterv = array('prog','inter');
  59. echo '<tr align="center">Type : ';
  60. foreach($ProgramInterv as $pi) {
  61. if ($pi == $result['proginter']) {
  62. echo $pi, '<input type="radio" name="proginter" value="$pi" checked="checked" />';
  63. } else {
  64. echo $pi, '<input type="radio" name="proginter" value="$pi" />';
  65. }
  66. }
  67. echo '</tr>', chr(13), chr(10);
  68.  
  69. ?>
  70.  
  71. </br>
  72.  
  73. <tr align="center">Commentaire : <input type="text" name="comm1" value="<?php echo $result['comm1'];?>" size="100"/></tr></br>
  74.  
  75. </table>
  76.  
  77. </br>
  78. </br>
  79. </br>
  80. </br>
  81.  
  82. <input type="submit" value="Ok" name="form1"/> - <input type="reset" value="Retour" name="form1" onClick="history.go(-2)" /> - <input type="button" name="reponse" value="Reponse" onClick="self.location.href='reponse.php'"/>



Ce dernier à pour but de permettre à l'utilisateur de modifier une demande. Pour ce faire il peut modifier tous les champs sauf ID qui reste par définition in modifiable (il est auto incrémenté donc aucune chance d'avoir un doublon).
Lorsque ce dernier à fini de modifier le formulaire, il clique sur le Submit et ce script PhP se lance :

  1. <?php
  2.  
  3. $id=$_POST['id'];
  4. $NomDemandeur=$_POST['nom_dem'];
  5. $NomRedacteur=$_POST['nom_redac'];
  6. $NumChantier=$_POST['num_chan'];
  7. $NomSite=$_POST['libel'];
  8. $ag=$_POST['agence'];
  9. $pl=$_POST['plan'];
  10. $DateDemande=$_POST['date_dem'];
  11. $DateRealisation=$_POST['date_real'];
  12. $pi=$_POST['proginter'];
  13. $Commentaire1=$_POST['comm1'];
  14.  
  15.  
  16.  
  17. include ("connexion.php");
  18.  
  19. $req2="UPDATE demande SET nom_dem='$NomDemandeur',nom_redac='$NomRedacteur',num_chan='$NumChantier',libel='$NomSite',agence='$ag',plan='$pl',date_dem='$DateDemande',date_real='$DateRealisation',proginter='$pi',comm1='$Commentaire1' WHERE id='$id'";
  20.  
  21.  
  22. ($resulta=mysql_query($req2)) or die("erreur".mysql_error());
  23.  
  24. echo "Votre demande a été modifié.<br /><br />";
  25.  
  26. mysql_close();
  27.  
  28. ?>


Aucun, soucis apparent je clique sur retour, je retourne dans ma liste de demande (tableau), je re-click sur le bouton radio de ma demande, et la je peut constater que seul mes 'input type text' ont été modifiés tandis que mes 3 bouton radio ne sont non seulment pas modifier, mais sont en plus décocher.

De plus dans ma base de donnée je peut voir apparaître en valeur : Plan = $pl Agence = $ag et Proginter = $pi.

On m'a expliquer que je ne pouvait pas réaffecter des variable qui ne sont valable qu'en php, cependant j'aimerai bien trouver une solution afin de pouvoir récupérer ses valeurs une fois modifié.

Désoler pour ces post à longueur de journée pour le même travail mais je n'y arrive pas :/ 

J'aurai bien besoin d'un petit coup de main sachant que je suis un peu prit par le temps ... Merci d'avance =)
Contenus similaires
Meilleure solution
partage
|
Forcément, tu as un bug dans ta génération de formulaire, que tu aurais pu voir en regardant la source HTML générée:
  1. echo $ag, '<input type="radio" name="agence" value="$ag" checked="checked" />';

Ca doit faire un rendu html qui resemble à:
  1. 13 <input type="radio" name="agence" value="$ag" checked="checked" />';

Essaye en faisant attention aux ' et ":
  1. echo $ag, '<input type="radio" name="agence" value="', $ag, '" checked="checked" />';


  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par gamer42.
  • Commenter cette réponse |
Score
0
òh
òi
|
Ca se passe de tout commentaire. Un gros merci comme d'habitude :) 
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS