checkbox, SQL et boucle

Répondre
i M@N
le 02/07/2008 à 23:30
i M@N
reuh ...

Je vois plus comme ça :
  1. <?php
  2. /*on initialise la variable $action issue de $_GET (_CHECKBOX_test.php?action=submit)*/
  3. if (isset($_GET['submit'])) $action = $_GET['submit']; else $action = '';
  4. /*début du switch*/
  5. switch($action) {
  6. /*si $action = "submit"*/

  7. case "submit" :
  8. /*si une (ou plusieurs) checkbox(es) cochée(s)*/

  9. if (isset($_POST['image'])) {

  10. $image = $_POST['image'];

  11. /*affiche le contenu du tableau $checkbox*/

  12. //print_r($image);

  13. /*on compte le nombre d'enregistrement(s) du tableau $image*/

  14. for($i = 0;$i < count($image);$i++) {

  15. /*si un seul enregistrement*/

  16. if ($i == 0) {

  17. $img = ''.$image[0];

  18. }
  19. /*si plusieurs enregistrements*/
  20. else {
  21. $img = $img.';'.$image[$i];
  22. }

  23. //print $image;

  24. }

  25. /*on insère dans la base*/
  26. $base2 = mysql_connect('host', 'user', 'password');

  27. mysql_select_db('base', $base);

  28. $sql2 = "INSERT INTO 2008_test VALUES('','$type','$status','$home','$titre','$url','$texte','$img')";
  29. mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());

  30. /*maintenant on affiche ce qui a été sélectionné avec les checkboxes*/
  31. /*on compte le nombre d'enregistrement(s) du tableau $image*/

  32. for($i = 0; $i < count($img);$i++) {

  33. /*si un seul enregistrement*/

  34. if ($i == 0) {
  35. /*on affiche l'image*/

  36. echo '<img src="./imgincfront/'.$image[0].'" />';

  37. }
  38. /*si plusieurs enregistrements*/
  39. else {
  40. /*on affiche les images*/

  41. echo '<img src="./imgincfront/'.$image[$i].'" /><br />';
  42. }
  43. }
  44. /*fin du case : "submit"*/

  45. break;
  46. /*case defaut, $action != "submit" => affichage du formulaire*/

  47. default : echo '<form method="POST" action="_CHECKBOX_test.php?action=submit">
  48. <input type="checkbox" name="image[]" value="affiche_baba.jpg">
  49. <img src="./imgincfront/affiche_baba.jpg" width="80"><br />
  50. <input type="checkbox" name="image[]" value="affiche_bubulle.jpg">
  51. <img src="./imgincfront/affiche_bubulle.jpg" width="80"><br />
  52. <input type="checkbox"name="image[]" value="affiche_cendrillon.jpg">
  53. <img src="./imgincfront/affiche_cendrillon.jpg" width="80"><br />
  54. <input type="submit" value="envoyer">
  55. </form>';
  56. /*fin du case defaut*/
  57. break;

  58. /*fin du if (isset($_POST['image']))*/
  59. }
  60. /*fin du switch*/
  61. }

  62. ?>

Après tu peux essayer avec implode sur le $_POST['image'] comme disait Lupus c'est plus mieux.
Mais là j'ai bien commenté pour que tu vois la démarche (si j'ai bien compris ce que tu veux faire) :
- on récupère les variables
- on affiche le formulaire ou on traite les données
- on parcourt le tableau $image
- on insère en base les images séparées par des ";"
- on se ressert du tableau $image pour afficher ce qui a été coché

Après y'a x façons de faire un truc ...

@+...
One Love, One Heart, One Unity.
krma
le 02/07/2008 à 23:41
krma
Yes, c'est propre, merci! Le vrai problème, c'est que vous êtes trop fort. Et c'est tant mieux d'ailleurs..
L'homme-singe est celui qui connait ses limites
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours