Récupérer valeurs Select et Radio

grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015 - Modifié par grmber le 6/08/2015 à 10:31
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 - 7 août 2015 à 13:09
Bonjour,

J'ai un backoffice qui permet d'alimenter une boucle. L'envoie de "news" fonctionne. J'ai un bouton "Edit" qui me permet de modifier mes "news". Dans mes champs type text cela me rapporte les infos marqué lors de l'envoie. Tout fonctionne! Sauf que j'ai voulu changer un type texte en "radio" et un autre en "select". Donc pour récupérer le radio cliqué ou le select cliqué j'ai un petit soucis...

Quelqu'un peut-il m'aider?

Visuellement ça donnerait cela.



J'ai une page modif.php et une page modif_suite.php

modif.php

<?php

include "header.php";

$id = $_GET['id'];

$selection = mysqli_query($lien,"SELECT * FROM produits WHERE ID=$id");
$ligne = mysqli_fetch_array($selection);


$type = $ligne['TYPE'];
$nom = $ligne['NOM'];
$promo = $ligne['PROMO'];

?>

<h1>Modification d'un film</h1>

<form method="POST" action="modif_suite.php">

<label for="TYPE">TYPE</label>
<select name="TYPE" id="TYPE">
<option value="Déco">Déco</option>
<option value="Jardin">Jardin</option>
<option value="Piscine">Piscine</option>

</select><br />
<label for="NOM">NOM</label><input type="text" id="NOM" name="NOM"
value="<?php echo $titre; ?>" /><br />
<label for="PROMO">PROMO</label>
<input type="radio" name="PROMO" value="Oui" id="PROMO" /> <label for="Oui">Oui</label>
<input type="radio" name="PROMO" value="Non" id="PROMO" /> <label for="Non">Non</label><br />
<br />
<input type="submit" value="Enregistrer" />
</form>


<?php include "footer.php"; ?>



modif_suite.php

<?php

include "header.php";

$id = $_POST['ID'];

$type = $_POST['TYPE'];
$nom = $_POST['NOM'];
$promo = $_POST['PROMO'];

mysqli_query($lien,"UPDATE produits SET TYPE=\"$type\",NOM=\"$nom\",PROMO=\"$promo\" WHERE ID=$id");

?>

<h1>Modification d'un produit</h1>

<p class="alerte">La modification de cette fiche est bien enregistrée</p>

<?php include "footer.php"; ?>



MERCI Smiley smile

3 réponses

NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
6 août 2015 à 15:36
"j'ai un petit soucis" lequel ?
Tu as plus d'informations à donner ?
0
grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015
6 août 2015 à 16:44
Je ne peux pas récupérer la valeur SELECT et RADIO.

SELECT
Déco
Jardin
Piscine

RADIO
Oui
Non

Lorsque je clique sur éditer je voudrais voir apparaitre dans le menu SELECT la valeur qui a été choisi lors de la création de la news. (Pareil pour RADIO).

Merci
0
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
6 août 2015 à 22:57
Ah, tu veux dire, mettre une valeur sélectionnée par défaut ?
Dans ce cas, il faut que tu mettes l'attribut
selected="1"
Sur l'élément sélectionné (Option dans le Select et Le Input pour la radio).
0
grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015 > NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024
6 août 2015 à 23:24
Fonctionne pas! Merci quand même. Je voudrais que la balise select affiche la valeur retournée par ma base de donnéesf.
0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 344
6 août 2015 à 21:15

Lorsque je clique sur éditer je voudrais voir apparaitre dans le menu SELECT la valeur qui a été choisi lors de la création de la news. (Pareil pour RADIO).

En d'autres termes.... tu voudrais que ta balises SELECT affiche la valeur retournée par ta base de données ?

Il te faut donc utiliser l'attribut "selected" sur tes "OPTIONS"

Par exemple.. pour ta balise SELECT ça donnerait :
<select name="TYPE" id="TYPE"> 
 <option value="Déco" <?php if($type == 'Déco') {echo " selected='selected' "} ?> >Déco</option>
 <option value="Jardin" <?php if($type == 'Jardin') {echo " selected='selected' "} ?>>Jardin</option>
 <option value="Piscine" <?php if($type == 'Piscine') {echo " selected='selected' "} ?>>Piscine</option>
</select>



... je te laisse regarder pour tes boutons radio.
NB :pour les boutons radio... il s'agit cette fois de l'attribut "checked"
0
grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015
6 août 2015 à 22:20
Merci beaucoup mais ça m'affiche une page blanche.
0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 344 > grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015
6 août 2015 à 23:55
J,ai oublié les points virgules dans les if
0
grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015 > jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024
7 août 2015 à 11:46
Et du coup ça devrait fonctionner avec?
0
grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015
6 août 2015 à 22:57
selected="<?php if (isset($_POST['tri'])){ echo $_POST['tri'];} ?>"


J'ai trouvé ce code sur internet ça ne fonctionne pas non plus.
0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 344
7 août 2015 à 00:44
<?php
//****************************************//
//          Fichier modif.php 
//****************************************//

//---------------------------------------//
// Affichage des erreurs php
//---------------------------------------//
error_reporting(E_ALL);


include "header.php";

//---------------------------------------//
// Récupération propre des variables
//---------------------------------------//
$id = !empty($_GET['id']) ? $_GET['id'] : NULL;

//---------------------------------------//
//Traitement :
//---------------------------------------//
if($id){
  $selection = mysqli_query($lien,"SELECT * FROM produits WHERE ID=$id");
  $ligne = mysqli_fetch_array($selection);

  $type  = trim($ligne['TYPE']);
  $nom   = trim($ligne['NOM']);
  $promo = trim($ligne['PROMO']);
}

//---------------------------------------//
// Création d'un Array pour ton <SELECT ..>
//---------------------------------------//
$arrType = array("Déco","Jardin","Piscine");

 ?>

<h1>Modification d'un film</h1>

<form method="POST" action="modif_suite.php">

 <label for="TYPE">TYPE</label>
 <select name="TYPE" id="TYPE"> 
  <?php
    //Ajout des éléments dans le select 
    // a partir de l'array
    foreach($arrType as $T){
      $selected = $T == $type ? " selected='selected' " : '';
      echo "<option value='$T' $selected>$T</option>";	
    }
  ?>
 </select>
 <br />

  <label for="NOM">NOM</label>
  <input type="text" id="NOM" name="NOM" value="<?php echo $titre; ?>" />
  <br>
  <label for="PROMO">PROMO</label>
  <input type="radio" name="PROMO" value="Oui" id="PROMO" <?php if($promo == "Oui") { echo " checked='checked' "  ;}?>/> <label for="Oui">Oui</label>
  <input type="radio" name="PROMO" value="Non" id="PROMO" <?php if($promo == "Non") { echo " checked='checked' "  ;}?>/> <label for="Non">Non</label><br />
  <br>
  <input type="submit" value="Enregistrer" />
</form>


<?php include "footer.php"; ?>


Par contre... attention... l'extension que tu utilises ( mysql_*) est considérée comme obsolète....
Je t'invite vivement à passer à la mysqli_* ou (je préfère..) la PDO.
Lis ceci :

http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

Puis ceci pour faire ta migration :
http://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli

0
grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015
7 août 2015 à 10:04
Merci :) Ca ne change rien à la situation d'avant et ça n'affiche donc aucune erreur car le code est correct...
0
jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024 344
7 août 2015 à 10:45
Tu peux faire un
print_r($ligne); 

et nous montrer le résultat ?
0
grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015 > jordane45 Messages postés 38181 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 mai 2024
7 août 2015 à 11:55
J'avais un caractère qui s'était inséré à tors ce qui fait que ça ne fonctionnait pas. Ca marche bien pour me recuperer les valeurs rentres dans la bdd sous forme de select et radio sauf que quand j'en sélectionne un autre et change la valeur du bouton radio en cliquant sur enregistrer ça ne prend pas en compte mes modifs...
0
grmber Messages postés 10 Date d'inscription jeudi 6 août 2015 Statut Membre Dernière intervention 7 août 2015
7 août 2015 à 12:46
J'ai fait un mix des deux et tout fonctionne! Merci beaucoup à toi...
0
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
7 août 2015 à 13:09
Si ton problème est résolu, penses à marquer le sujet comme "résolu"
0
Rejoignez-nous