[RESOLU] PHP Modification

PHP Modification [RESOLU] - PHP - Programmation

Marsh Posté le 04-06-2007 à 22:37:00    

Salit salut !
 
une petite aide serai la bienvenue, je m'explique j'ai fait un calendrier sur mon site le formulaire d'insertion marche nickel par contre il faudrait que je fasse un formulaire de modification du calendrier, donc j'ai penser faire un ptit tableau qui recapitulerai les 5 premier enregistrements, jusque là pas de problème et ensuite en face de chaque enregistrement j'aimerai mettre une ptite case à coché pour selectionner l'enregistrement qu'on veut modifier on click sur envoyer et là j'ouvre un autre formulaire avec les champ prérempli de l'enregistrement que j'aurai selectionné.
 
mon soucis est en fait de faire comprendre à php que la case que je coche est l'enregistrement que je veut modifié.
 
merci de votre aide.
 
SeB


Message édité par plop007 le 05-06-2007 à 20:45:12
Reply

Marsh Posté le 04-06-2007 à 22:37:00   

Reply

Marsh Posté le 04-06-2007 à 22:53:18    

bonsoir,
à mon avis tu vas devoir faire appel a du javascript pour l'événement on click je pense (mais pas sur) et ensuite dans la page que tu affiches tu tests grâce à javascript encore quelle case est cochée. Lorsque tu as trouvé la case , il est facile de déterminer l'id de la news et donc de récupérer les valeurs.
voila voila moi je ferais comme ça mais peut être y a t-il un autre moyen :)

Reply

Marsh Posté le 04-06-2007 à 22:58:09    

Merci pour ta réponse mais javascript je connais pas grand chose :/

Reply

Marsh Posté le 04-06-2007 à 23:03:00    

j'ai fait ceci :
 

Code :
  1. <form method="post" name="modif" action="modifcal.php">
  2.         <?php do { ?>
  3.           <table width="327" border="0">
  4.               <tr>
  5.                 <td><?php echo $row_Recordset2['DATE']; ?></td>
  6.                 <td><?php echo $row_Recordset2['DESCRIPTION']; ?></td>
  7.                 <td><?php echo $row_Recordset2['HEURE']; ?></td>
  8.                 <td><input type="checkbox" value="<?php echo $row_Recordset2['ID']; ?>" /></td>
  9.        </tr>
  10.                       </table>  <?php } while ($row_Recordset2 = mysql_fetch_assoc($Recordset2)); ?>
  11.           <input type="submit" value="Valider" /></form>


donc la faut que je dise que si la case est cocher prendre $row_Recordset2['ID'] et l'inséré dans ma page modifcal.php ou j'aurai :
 

Code :
  1. select * from calendrier where $row_Recordset2['ID']


 
peut être est ce plus clair ?
 
merci pour vos réponses ;)
 
SeB

Reply

Marsh Posté le 05-06-2007 à 00:53:58    

Pour savoir si une checkbox est cochée, tu lui donne un name="prout1", et tu vérifies isset($_POST['prout1']) dans le script appelé (modifcal.php).
Le value=, si je ne m'abuse, il ne sert même à rien (je sais pas ce qu'il en est chez le w3c).


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 05-06-2007 à 13:55:20    

oui mais ça ça va l'obliger à faire un submit pour envoyer le formulaire. Moi j'avais comrpis qu'il voulait que ça ouvre une nouvelle des qu'il coche la case sans avoir un cliquer autre part :)

Reply

Marsh Posté le 05-06-2007 à 14:05:55    

utilisation de onchange ?

Reply

Marsh Posté le 05-06-2007 à 16:07:27    

theredled a écrit :

Pour savoir si une checkbox est cochée, tu lui donne un name="prout1", et tu vérifies isset($_POST['prout1']) dans le script appelé (modifcal.php).
Le value=, si je ne m'abuse, il ne sert même à rien (je sais pas ce qu'il en est chez le w3c).


 
la value sert dans le cas où t'as plusieurs checkbox qui ont le même nom (parce que les choix possibles se rapportent à un même "objet/contexte" ).

Reply

Marsh Posté le 05-06-2007 à 16:11:05    

et y'a pas besoin de javascript pour ça, un simple lien hypertexte dont l'url est le chemin du script php permettant de modifier un enregistrement + en paramètre l'ID de l'enregistrement suffit.
ex : <a href="modifcal.php?id=5" title="">MAJ</a>
 
Après, dans ton script modifcal.php tu fais (en gros)
$IdToUpdate = $_GET["id"];

Reply

Marsh Posté le 05-06-2007 à 20:16:03    

en fait j'ai trouvé mais j'ai pas fait du tout comme ça, je poste ma réponse on sait jamais...
 
le forumulaire de selection :
 

Code :
  1. <form method="post" name="modif" action="modifcal.php">
  2.         <?php do { ?>
  3.           <table width="476" border="0" class="Style1">
  4.               <tr>
  5.                 <td width="122" align="center"><?php $date = $row_Recordset2['DATE'];
  6.    $date = explode("-",$date);
  7. $annee = $date[0];
  8. $mois = $date[1];
  9. $jour = $date[2]; ?>
  10.                 <?php
  11.    $date = $row_Recordset2['DATE'];
  12.    if ($date == "" ) {
  13.    }
  14.    else {
  15.    echo "$jour / ".$mois." / $annee";
  16.    }
  17.    ?>    </td>
  18.                 <td width="157" align="center"><?php echo $row_Recordset2['DESCRIPTION']; ?> </td>
  19.                 <td width="141" align="center"><?php echo $row_Recordset2['HEURE']; ?></td>
  20.                 <td width="38"><input type="radio" name="selid"  value="<?php echo $row_Recordset2['ID']; ?>" /></td>
  21.          </tr>
  22.               </table>  <?php } while ($row_Recordset2 = mysql_fetch_assoc($Recordset2)); ?>
  23.           <input type="submit" value="Valider" /></form>


 
et dans mon fichier modifcal.php :
 

Code :
  1. $selid = $_POST['selid'];
  2. mysql_select_db($database_bdd, $bdd);
  3. $query_Recordset2 = "SELECT * FROM calendrier where ID = '$selid'";
  4. $Recordset2 = mysql_query($query_Recordset2, $bdd) or die(mysql_error());
  5. $row_Recordset2 = mysql_fetch_assoc($Recordset2);
  6. $totalRows_Recordset2 = mysql_num_rows($Recordset2);
  7. ?>


 
et voilà et ça fonctionne parfaitement :D
 
merci pour vos réponse en tout cas
 
SeB

Reply

Marsh Posté le 05-06-2007 à 20:16:03   

Reply

Marsh Posté le 06-06-2007 à 11:39:45    

ben c'est le même principe que ma solution, sauf que tu le fais en POST et moi en GET. Je fais l'économie d'un formulaire et de tous pleins de <input>
 
ps : width et align dans les <td> sont dépréciés. Border oaussi, du reste ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed