Liste menu et zone de texte

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir à tous !

Je rencontre un petit problème en php.

Ce code récupère la liste des articles de ma table.
Je souhaiterais qu'à la sélection de l'article depuis ma liste de menu, l'image (qui est aussi un champ 'Image') s'affiche dans l'input Image :
<select name="Article" id="Article" style="width:100%" >
<option selected="selected" disabled="disabled" style="font-style:italic; font-weight:bold">Sélectionnez...</option>      
<?php $sql = " SELECT * FROM tb_produits_fr ORDER BY Designation ASC"; $result = mysql_query($sql) or die("Requete pas comprise"); while ($row=mysql_fetch_array($result)){ echo utf8_encode("<option>$row[Designation]</option>");} ?></select>

<input type="text" name="Image" id="Image" style="width:100%" readonly="readonly" value="" />


Pouvez-vous m'aider svp ?
A voir également:

10 réponses

MichaelOfCourse Messages postés 90 Statut Membre 6
 
Tu veux que l'image s'inscrive dans le dernier input ?

ou tu veux que le contenu de la colonne "image" pour la ligne selectionnée, surement le chemin de l'image, s'y inscrive ?

si c'est la deuxieme solution, il faut placer un echo $variableCheminImage dans le Value du Input text !

Dernière ligne :

<input type="text" name="Image" id="Image" style="width:100%" readonly="readonly" value="<?echo $row[Designation];?>" />


EDIT : Il faut que le tout soit dans le While.

<select name="Article" id="Article" style="width:100%" >
<option selected="selected" disabled="disabled" style="font-style:italic; font-weight:bold">Sélectionnez...</option>      
<?php $sql = " SELECT * FROM tb_produits_fr ORDER BY Designation ASC"; $result = mysql_query($sql) or die("Requete pas comprise"); while ($row=mysql_fetch_array($result)){ 

echo utf8_encode("<option>$row[Designation]</option>"); ?></select>

<input type="text" name="Image" id="Image" style="width:100%" readonly="readonly" value="<?echo $row[Designation];?>" />


J'ai rien testé, y'a peut etre des erreurs :)
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour et merci pour ta réponse.

En effet, il y a un problème. J'avais déjà fais exactement pareil que toi :
<select name="Article" id="Article" style="width:100%" >
<option selected="selected" disabled="disabled" style="font-style:italic; font-weight:bold">Select...</option>      
<?php $sql = " SELECT * FROM tb_produits_fr ORDER BY Code ASC"; $result = mysql_query($sql) or die("Requete pas comprise"); while ($row=mysql_fetch_array($result)){echo utf8_encode("<option>".$row[Designation]."</option>"); ?></select>
<span class="Espace10"></span><input type="text" name="Image" id="Image" style="width:100%" readonly="readonly" value="<?php echo $row[Image];} ?>" />
sauf que j'ai mis
<?php echo $row[Image];} ?>
à la place de
<?php echo $row[Designation]; ?>


Le problème est qu'il me donne dans le select la première ligne de ma table et dans l'input, limage et...
<option>Crème Clarifiante en tube</option></select><span class=
ce reste de code.

EDD: Là il me duplique l'input et me met ceci :
CFSIVS.png<option>Crème Clarifiante en tube</option></select><span class=

jusqu'au dernier enregistrement
0
MichaelOfCourse Messages postés 90 Statut Membre 6
 
Tu peux donner un exemple de ce que contient la colonne image s'il te plait, que je comprenne mieux le problème ? :)
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Biensûre !

Voici la table
CREATE TABLE IF NOT EXISTS 'tb_produits_fr' (
  'NumId' int(11) NOT NULL AUTO_INCREMENT,
  'Code' varchar(255) NOT NULL,
  'Designation' varchar(255) NOT NULL,
  'Image' varchar(255) NOT NULL,
  PRIMARY KEY ('NumId'),
  UNIQUE KEY 'NumId' ('NumId')
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

Ensuite, depuis un select, je récupère la Designation comme ceci:
<select name="Article" id="Article" style="width:100%" >
<option selected="selected" disabled="disabled" style="font-style:italic; font-weight:bold">Select...</option>      
<?php $sql = " SELECT * FROM tb_produits_fr ORDER BY Code ASC"; $result = mysql_query($sql) or die("Requete pas comprise"); while ($row=mysql_fetch_array($result)){echo utf8_encode("<option>".$row[Designation]."</option>");} ?></select>

Ensuite, j'ai un input qui doit afficher, selon la sélection de la liste déroulante, le chemin de l'image.

Exemple :

   Code   | Designation            |    Image    |
--------------------------------------------------
J9JBK     | Crème de beauté        | J9JBK.png   |
9BQT9     | Lait de beauté         | 9BQT9.png   |


On comprends donc que si je sélectionne Lait de beauté depuis mon select, 9BQT9.png s'affichera dans l'input...
0
MichaelOfCourse Messages postés 90 Statut Membre 6
 
Ah ok autant pour moi j'avais pas compris ça comme ça. Hum il me semble pas que ça soit possible en utilisant seulement le PHP.

Il faut utiliser l'ajax je pense, de façon a ce que des que la selection du select change, il fasse une recherche dans la BDD pour trouver l'image correspondante.

Ou alors en Jquery, si ta base de donnée ne contient pas trop de donnée, tu peux tout charger dans un tableau a l'affichage de la page, et jquery detecte quand tu change de select, et change le contenu de l'input :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gign44 Messages postés 132 Statut Membre 5
 
Bonjour,

Rajoute une requete en fonction de la selection :

if(isset($_REQUEST['Article'])){
$art=$_REQUEST['Article'];
$search="SELECT Image FROM tb_produits_fr WHERE Designation='$art' ;";
$res=mysql_query($search);
$row=mysql_fetch_array($res);
if(!empty($row['Image'])){
echo "<input type='text' name='Image' id='Image' style='width:100%' readonly='readonly' value='".$row['Image']."' />";
}
}


Cela devrai fonctionner, rajoute ce code après le code du SELECT

Cordialement
0
gign44 Messages postés 132 Statut Membre 5
 
Rajoute l'encodage UTF-8 dans ma requete car tes accents risquent de t'embêter pas mal ;)
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
J'ai fais ceci:
<select name="Article" id="Article" style="width:100%" >
<option selected="selected" disabled="disabled" style="font-style:italic; font-weight:bold">Sélectionnez...</option>      
<?php $sql = " SELECT * FROM tb_produits_fr ORDER BY Code ASC";
$result = mysql_query($sql) or die("Requete pas comprise");
while ($row=mysql_fetch_array($result)){ 
echo utf8_encode("<option>".$row[Designation]."</option>");} ?></select>

<?php 
if(isset($_REQUEST['Article'])){
$art=$_REQUEST['Article'];
$search="SELECT Image FROM tb_produits_fr WHERE Designation='$art' ;";
$res=mysql_query($search);
$row=mysql_fetch_array($res);
if(!empty($row['Image'])){
echo "<input type='text' name='Image' id='Image' style='width:100%' readonly='readonly' value='".$row['Image']."' />";}} ?>
mais rien ne s'affiche.

Y a t-il une erreur ?
Et je ne comprends pas pourquoi
WHERE Designation='$art' ;";
$art est dans le code...
0
gign44 Messages postés 132 Statut Membre 5
 
Bonjour,

Modifie la ligne suivante lorsque tu crées tes options. Ton select retourne la valeur de l'option, ce que l'on définit par le paramètre value. Sans cela, il ne renverra rien, ce sera donc impossible de le récupérer lors du choix de l'utilisateur.

echo utf8_encode("<option value='".$row['Designation']."'>".$row['Designation']."</option>");} ?></select>


En ce qui concerne "WHERE Designation='$art' ;";", ceci est pour récupérer la valeur du champ Image pour l'article choisi. La clause WHERE va filtrer ton résultat selon l'article sur lequel clique l'utilisateur.
Il est récupéré avec la ligne suivante :
$art=$_REQUEST['Article'];
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Je ne sais plus trop.
La liste déroulante affiche tout les articles, mais la zone Image n'est pas visible "même" quand je clique sur un article de la liste.

<select name="Article" id="Article" style="width:100%" >
<option selected="selected" disabled="disabled" style="font-style:italic; font-weight:bold">Sélectionnez...</option>      
<?php $sql = " SELECT * FROM tb_produits_fr ORDER BY Code ASC";
$result = mysql_query($sql) or die("Requete pas comprise");
while ($row=mysql_fetch_array($result)){ 
echo utf8_encode("<option value='".$row['Designation']."'>".$row['Designation']."</option>");}?></select>
<?php
if(isset($_REQUEST['Article'])){
$art=$_REQUEST['Article'];
$search="SELECT Image FROM tb_produits_fr WHERE Designation='$art' ;";
$res=mysql_query($search);
$row=mysql_fetch_array($res);
if(!empty($row['Image'])){
echo "<input type='text' name='Image' id='Image' style='width:100%' readonly='readonly' value='".$row['Image']."' />";}} ?>
0
gign44 Messages postés 132 Statut Membre 5
 
Le select doit être dans un formulaire pour fonctionner bien entendu.
Crée un formulaire englobant ta page, mets le en method=post
Puis change cela :
<select name="Article" id="Article" style="width:100%" onChange="submit()" >


Lorsque tu choisiras une option de ton select, cela soumettra directement le formulaire, rechargeant ta page et faisant passer l'article choisi dans l'url.
Le code devrait ensuite fonctionner.
Si ce n'est pas le cas, envoie le code global avec le formulaire
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
En mettant dans le "post", ma form doit normalement enregistrer le contenu dans la table.
Voici la page complète :
<form method="post" action="ajout_conf.php" autocomplete="off">
  <input type="hidden" name="action" value="send" />
  <input type="hidden" name="access[]" value="home" />
  <table width="1000" border="0" align="center" cellspacing="10" cellpadding="0">
    <tr>
      <td align="left">Article</td>
      <td width="328" align="left"><select name="Article" id="Article" style="width:100%" onchange="submit()" >
        <option selected="selected" disabled="disabled" style="font-style:italic; font-weight:bold">Sélectionnez...</option>
        <?php $sql = " SELECT * FROM tb_produits_fr ORDER BY Code ASC";
$result = mysql_query($sql) or die("Requete pas comprise");
while ($row=mysql_fetch_array($result)){ 
echo utf8_encode("<option value='".$row['Designation']."'>".$row['Designation']."</option>");}?>
      </select>
        <?php
if(isset($_REQUEST['Article'])){
$art=$_REQUEST['Article'];
$search="SELECT Image FROM tb_produits_fr WHERE Designation='$art' ;";
$res=mysql_query($search);
$row=mysql_fetch_array($res);
if(!empty($row['Image'])){
echo "<input type='text' name='Image' id='Image' style='width:100%' readonly='readonly' value='".$row['Image']."' />";}} ?></td>
      <td width="20" align="left"><img src="<?php echo URL_IMAGES; ?>fr_ico.png" width="16" height="11" /></td>
      <td width="34" align="left">&nbsp;</td>
      <td width="328" align="left"><select name="Article2" id="Article2" style="width:100%" >
        <option selected="selected" disabled="disabled" style="font-style:italic; font-weight:bold">Select...</option>
        <?php $sql = " SELECT * FROM tb_produits_en ORDER BY Code ASC"; $result = mysql_query($sql) or die("Requete pas comprise");
while ($row=mysql_fetch_array($result)){
echo utf8_encode("<option>".$row[Designation]." - ".$row[Contenance]."</option>");} ?>
      </select></td>
      <td width="20" align="left"><img src="<?php echo URL_IMAGES; ?>en_ico.png" width="16" height="11" /></td>
    </tr>
    <tr>
      <td align="left">Image</td>
      <td colspan="5" align="left">&nbsp;</td>
    </tr>
    <tr>
      <td width="200" align="left" valign="top">&nbsp;</td>
      <td colspan="5" align="left" valign="top"><input type="submit" name="button" id="button" class="Btn BtnCyan" value="Enregistrer le cadeaux" /></td>
    </tr>
  </table>
</form>


Lorsque je met
<select name="Article" id="Article" style="width:100%" onchange="submit()" >
il poste pour ajouter dans la table.

Punaise... je sais plus quoi faire moi :\
0