Bonjour tout le monde,
Je suis nouveau sur ce forum et surtout en php, et j'espère respecter les règles en vigueur ici
Je cherche depuis plusieurs heures une réponse sur internet mais je ne trouve pas ce cas particulier.
Voilà je chercher à créer une fonctionnalité pour mon site, en quelques mots :
J'upload des backgrounds via php dont je récupère plusieurs variables (nom chemin etc.)
Dans mon admin j'affiche les images uploadées et je veux pouvoir sélectionner le seul et unique background que je veux afficher sur mon site, c'est pourquoi j'ai opté pour un input type="radio".
Mon problème c'est que quand je soumets le formulaire la valeur postée est celle de la dernière id affichée ( a priori)
Pour palier au fait qu'un checkbox non coché ne renvoie aucune valeur j'ai fait une requête MySQL qui remet tous les champs "onOff" à "off".
Voici mes codes :
Formulaire avec affichage par requète MySQL :
Le traitement php de "choixWallpaper.php" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <form method="post" name="wallpaper" action="php/choixWallpaper.php"> <br/> <?php $sql="SELECT * FROM ma_table ORDER BY id DESC"; $req =mysql_query($sql) or die('Erreur SQL !<br />'.sql.'<br />'.mysql_error()); while($data=mysql_fetch_assoc($req)){ if ($data["onOff"]=="on"){$wallpaperOn=' checked="checked" ';} echo ' <div class="minWallpapers"> <a href="../img/wallpapers/'.$data["nom"].'" rel="zoombox[galerie]"> <img src="../img/wallpapers/min/'.$data["nom"].'" border="0px"/> </a> <input type="radio" name="choix" value="on"' .$wallpaperOn.'/> <input name="statut" type="text" size="4" value="'.$data["onOff"].'"/> <input name="id" type="text" size="1" value="'.$data["id"].'"/> </div> '; } ?> <input name="enregistrer" type="submit" id="enregistrer" value="enregistrer"/> </form>
echo $choix; renvoie on,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php require "config.php"; mysql_connect(DB_HOST,DB_LOGIN,DB_PASS); mysql_select_db(DB_BDD); // remet tout les champs onOff sur Off (ça ça marche) $sql="UPDATE ma_table SET onOff='Off'"; $req = mysql_query($sql) or die('Erreur SQL !<br />'.sql.'<br />'.mysql_error()); extract($_POST); echo $choix; echo $id; $sql="UPDATE ma_table SET onOff='$choix' WHERE id=$id"; $req = mysql_query($sql) or die('Erreur SQL !<br />'.sql.'<br />'.mysql_error()); mysql_close(); header('Location: ' . $_SERVER['HTTP_REFERER'] ); ?>
echo $id; renvoie l'id de la dernière image affichée,
j'ai pensé à plusieurs solutions non fructueuses, et j'essaye le plus possible d'éviter le javascript pour maximiser la compatibilité mais le cas échéant je suis prêt à l'utiliser.
Merci d'avance pour votre aide.
Partager