j'ai un script PHP qui me permet de choisir de choisir une photo dans une liste et dynamiquement lorsque je choisi le nom d'une photo j'ai sa miniature qui s'affiche à côté de mon formulaire.
Une fois le choix fais, je valide mon formulaire et la photo s'ajoute dans la BDD.
Sauf que ça ne fonctionne pas du premier coup, ça ne fonctionne que lorsque je modifie mon ajout à la BDD:
nouveau.php :
<td align="right" valign="center">Photo :</td><td valign="center">
<img name="depart" src=../images/vide.jpg border=0>
<select name="listeImg1" size=8 onChange ="if(VersionNavigateur(3.0,4.0))depart.src=form.listeImg1.options[form.listeImg1.selectedIndex].value;">
<option name="../images/vide.jpg" value="../images/vide.jpg">-- aucune --</option>
<?
// on se connecte à MySQL
$db = mysql_connect($host, $login_host, $pass_host);
// on selectionne la base
mysql_select_db($hostname,$db);
// on crée la requete SQL
$sql = "SELECT * FROM `".$prefixe."_images` ORDER BY url ASC";
// on envoie la requète
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_array($req)) {
echo'<option name="../images/mini_'.$data['url'].'" value="../images/mini_'.$data['url'].'">'.$data['url'].'</option>';
}
?>
</select>
</td>
...
$id_photo = $_POST['listeImg1'];
...
$sql = "INSERT INTO ".$prefixe."_articles(id, titre, auteur, texte1, texte2, categorie, id_photo, date, heure, suivie, commentaires, valide, description, motsclefs, lecture, time) VALUES('','$titre','$res','$texte1','$texte2','$categorie','$id_photo','$date','$heure','$suivie','$commentaires','oui','$description','$motsclefs','0','$time_article')";
Là ça ne fonctionne pas. Mais lorsque je modifie mon entrée dans la BDD avec ce fichier là :modif_zone.php
<td align="right" valign="center">Image :</td><td>
<? if(!empty($data['id_photo'])) { ?><img name="depart" src="../images/mini_<? echo$data['id_photo']; ?>" border=0><? } else { ?><img name="depart" src="../images/vide.jpg" border=0><? } ?>
<select name="listeImg1" size=8 onChange ="if(VersionNavigateur(3.0,4.0))depart.src=form.listeImg1.options[form.listeImg1.selectedIndex].value;">
<option name="../images/vide.jpg" value="../images/vide.jpg"<? if(empty($data['id_photo'])) { echo' selected'; }?>>-- aucune --</option>
<? if(!empty($data['id_photo'])) { ?><option name="../images/mini_<? echo$data['id_photo']; ?>" value="../images/mini_<? echo$data['id_photo']; ?>" selected>Photo actuelle</option> <? }
// on se connecte à MySQL
$db = mysql_connect($host, $login_host, $pass_host);
// on selectionne la base
mysql_select_db($hostname,$db);
// on crée la requete SQL
$sql = "SELECT * FROM `".$prefixe."_images` ORDER BY id DESC";
// on envoie la requète
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($result = mysql_fetch_array($req)) {
if($data['url']==$result['url']) { $selected = ' selected'; } else { $selected = ''; }
echo'<option name="../images/mini_'.$result['url'].'" value="../images/mini_'.$result['url'].'"'.$selected.'>'.$result['url'].'</option>';
}
?>
</select>
</td>
...
//On récupère le nom de l'image sans "../images/mini_" soit 15 caractères
$id_photo = substr($_POST['listeImg1'], 15);
...
$sql = "UPDATE ".$prefixe."_articles SET titre='$titre', categorie='$categorie', texte1='$texte1', texte2='$texte2', suivie='$suivie', commentaires='$commentaires', id_photo='$id_photo', description='$description', motsclefs='$motsclefs', date='$date', heure='$heure', time='$time_article' WHERE id='$id'";
Là ça fonctionne.On est d'accord avec nouveau.php tout le reste est bien enregistré dans la BDD je n'ai que le nom de la photo qui n'est pas enregistré.
Merci par avance pour votre aide.