Bonjour,
Je débute en php et je bloque sur un sujet qui n'est pas très compliqué en soi.
J'ai créé une liste liste déroulante qui reprend les données d'une table. Ce sont des années correspondant à des rapports annuels d'activité. Je voudrais que, lorsque l'utilisateur clique sur une année, le système ouvre, dans une nouvelle fenêtre, le document pdf correspondant. Le "chemin" vers le document est indiqué dans ma table et je comptais faire un "echo" pour obtenir chaque document correspondant aux années de la liste. Mais je ne sais pas trop comment indiquer qu'il faut l'afficher dans une nouvelle fenêtre.
Pour résumer : ma table "documents" contient les intitulés suivants :
id_documents
annee
nom
-lien_url (le lien vers le document)
Ma liste déroulante fait partie d'un formulaire dont voici le code :
<?php
include ("Admin/connexion.php");
$requete="SELECT * FROM documents
ORDER BY annee ASC";
$resultatListe = mysql_query($requete, $connexion);
?>
<form action ="traitement.php" method="get">
<table style="color:#004c8a; font-weight:bold">
<tr>
<td><select name="annee" id="annee">
<option value="0">année</option>
<?php while ($row = mysql_fetch_array($resultatListe)){?>
<option value="<?php echo $row"id_document"]?>"><?php if($row"annee"]>0)echo $row"annee"]?></a></option>
<?php }?>
</select></td>
</tr> </table>
</form>
Je ne sais pas trop comment placer un <a href> qui appelle le document concerné (<?php echo $row"lien_url"]?>)
Je vous remercie d'avance pour vos réponses !
Merci Nairolf, je n 'avais pas fait attention à cette possibilité...
Bon voila je supprime tout et je remet un post complet....
<?php
include ("Admin/connexion.php");
$requete="SELECT * FROM documents ORDER BY annee ASC";
$resultatListe = mysql_query($requete, $connexion);
if(empty($_POST)){
echo 'selectionner une année';
}
else{
if(isset($_POST'anneechoisi'])){
$page = "http://www.lesite.com/xxxxxxxxxx".$_POST'anneesaisi'].".pdf";
header("Location:".$page);
}
]
?>
<--- debut du formulaire --->
<form action ="traitement.php" method="post">
<fieldset>
<select name="anneechoisi" id="annee">
<--- boucle des données dans le select --->
<?php while($row = mysql_fetch_array($resultatListe)): ?>
<option value=<?php echo $row"annee"];?></option>
<?php endwhile ;?>
</select>
<--- envoie de la donnée du select vers ce fichier par la methode post --->
<input type="submit" name="Voir le Fichier" />
</fieldset>
</form>
Tu ne peux pas mettre de target si tu redirige avec un header pour ton cas du devrait plutot faire apparaitre le lien
tu change ton code concernant le header par :
if(isset($_POST'anneechoisi'])){
$page = "http://www.lesite.com/xxxxxxxxxx".$_POST'anneesaisi'].".pdf";
echo "
<a href='$page' target='_blank'>Cliquez ici pour télécharger le rapport</a>
";
}
Après tu peux le faire avec du javascript mais c'est un peu plus long
Bonjour Macsim ta solution est certainement une alternative correct, mais cela oblige de recliquer sur le lien "telecharger le rapport"
voici mon code un peu different de ce matin que j ai corrigé et testé.
voila mon fichier traitement.php
<?php
include ("Admin/connexion.php");
if(empty($_POST)){
echo 'selectionner une année';
}
else{
if(isset($_POST'anneechoisi'])){
$anneechoisi=explode(' ',$_POST'anneechoisi']);
$monannee = $anneechoisi[0];
$monlien = $anneechoisi[1] ;
header("Location:".$monlien);
}
}
?>
<form action ="traitement.php" method="post">
<select name="anneechoisi">
<?php
$requete="SELECT * FROM documents ORDER BY annee ASC";
$resultatListe = mysql_query($requete);
while($row = mysql_fetch_ASSOC($resultatListe)) {
echo '<option value="'.$row'annee'].' '.$row'lien'].'">'.$row'annee'].'</option>';
} ;?>
</select>
<input type="submit" name="ok" value = "Voir le Fichier" />
</form>