Faire passer une variable http post via un <a href>

Faire passer une variable http post via un <a href> - PHP - Programmation

Marsh Posté le 25-08-2005 à 16:31:39    

Bonjour  
 
Je suis entrain de coder un site d’information et comme tout site de ce gabarit biensur il y a des news.
Le codage s’effectue en full PHP/HTML/MYSQL
 
En gros pour les news cela se présente comme suite
TITRE
RESUME
NEWS
 
(biensur il y à d’autre champs mais c ‘est sans importance dans la question)
 
Donc sur la page d’acceuil j’affiche juste le titre des 5 dernière news quand on clique sur l’une on est redirigé sur une page ou est liste un bien plus grand nombre de news ou apparaisse d’un premier coup d’œil le titre et le resume.
Ce que je veux faire c’est rajouter un lien en dessous style « voir la suite… » qui lorsque l’on cliquera dessus on sera redirigé sur la totalité de la news avec titre / resume /news et image.
 
Pour info je n’ai pas une page par News ou autre, j’ai un modèle avec les variable des champs a appeler. Pour le moment j’ai un bouton submit alié a un form pour chaque resumé qui passe en variable l’ID de la news (id de stockage dans la bdd) afin de pouvoir ensuite identifié tout les champs dans l’affichage totale de la news)
 
Le souci c’est que pour faire un truc du style <voir la suite > avec juste du teste il faut faire un <a href=  > or je sais pas comment je peux faire passé une variable via cette combinaison je sais meme pas si c’est faisable
en gros j’aimerais faire passe une variable HTTPost du type $_POST[‘id_news ‘] ;  
 
Comment je pourrais faire (j’ai une vague impression que ce que j’ai expliqué est incompréhensible lol
 
Merci d'avance

Reply

Marsh Posté le 25-08-2005 à 16:31:39   

Reply

Marsh Posté le 25-08-2005 à 16:39:45    

au lieu de te compliquer la vie, fait ça en avec GET

Reply

Marsh Posté le 25-08-2005 à 16:40:05    

Ben passe les en GET.
 
<a href="news.php?id_news=158">Voir la suite...</a>
 
Et tu récupères dans $_GET['id_news'].


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 25-08-2005 à 16:42:05    

sielfried a écrit :

Ben passe les en GET.

en retard de 20s  ;)  

Reply

Marsh Posté le 25-08-2005 à 16:50:36    

ici c'est du $_GET c'est tout.


---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 25-08-2005 à 17:29:13    

De toute maniére, il veut tout dans l'adresse donc cette question se poste pas et par l'adresse c'est du get obliguatoirement.
A moins qu'une nouvelle norme soit sorti ce matin pour faire du post dans l'adresse. :lol:
 
et oui hyptnos, si tu veux faire passer par l'adresse, tu devras modifier une partie de la page d'arrivé.

Reply

Marsh Posté le 25-08-2005 à 17:36:00    

tu peux faire du javascript. Un onclick sur le lien qui valide un formulaire invisible qui lui, envoie les données par POST.

Reply

Marsh Posté le 25-08-2005 à 18:40:21    

Oui le javascript va flingué ma compatibilité aussi
 
le truc du get je suis d'accord avec vous mais dans la condition ou l'on met l'id manuellement dans le lien or les news vont se mettre automatiquement donc le lien doit etre egalement automatique donc pas de id mais la variable de l'id
 
or ceci <a href="news.php?id_news=158">Voir la suite...</a>   oui dans le cas ou on met l'id manuellement  
moi se serait pluis un truc du genre
<a href="news.php?id_news=$id_news">Voir la suite...</a>  
or je crois que cela ne fonctionne pas
 
est ce que vous voyé ce que je veux dire

Reply

Marsh Posté le 25-08-2005 à 18:46:32    

Reply

Marsh Posté le 25-08-2005 à 18:48:49    

moi, je vois que mêem si le navigateur recoit tel quel la deuxiéme ligne, il ne peut de toute maniére pas conaitre la valeur qu'avait $id_news pendant l'exécution de php. Donc, non, ca marchera pas dans ce cas là.
Et si php transforme $id_news en nombre tu retombes sur le premier cas.
 
De toute maniére, que ce soit en dur dans la page html du serveur, mis par php ou par javascript tant que la valeur apparait dans la bare d'adresse du navigateur, c'est du get. Ca a rien à voir avec la méthode utilisé pour créer cette adresse là.

Reply

Marsh Posté le 25-08-2005 à 18:48:49   

Reply

Marsh Posté le 25-08-2005 à 18:57:40    

Mais moi peut importe la methode pour le moment j'ai  
 
quelque chose comme
 

Code :
  1. $requete="SELECT  * from news order by date_news DESC LIMIT 0, 15 ";
  2.  $resultat=mysql_db_query($sql_bdd,$requete,$db_link);
  3.   while ($rang=mysql_fetch_array($resultat)){
  4.   $titre=$rang['titre_news'];
  5.   $date=$rang['date_news'];
  6.   $id_news=$rang['id_news'];
  7.   $auteur=$rang['auteur_news'];
  8.   $date=$rang['date_news'];
  9.   $source=$rang['source_news'];
  10.   $resume=$rang['resume_news'];
  11.  ?>
  12.  <hr>
  13.  <form action="aff_news.php" method="post">
  14.  <input type="hidden" value="<? echo $id_news; ?>" name="id_news">
  15.  <table width="550" border="0">
  16.  <tr>
  17.  <td width="50" valign="top"><table width="50" height="50" border="1"><tr><td></td></tr></table></td>
  18.  <td width="450" valign="top"><b><? echo $titre; ?> </b>
  19.  <br>
  20.  <a> Posté le <i><? echo $date; ?> </i> par <b> <? echo $auteur; ?> </b> source : <? echo $source; ?>


 
Donc on voit la boucle et dans la boucle un form qui va lorsque l'on clique dessus allez vers aff_news.php avec pour variable a passe $id_news
c'est une boucle donc il aurai autant de bouton que de news or je ne veux pas un bouton je veux juste "voir la suite"  
 
Donc voila  je ne vois toujours pas de reponse a mon probleme

Reply

Marsh Posté le 25-08-2005 à 19:01:06    

get par l'adresse => possible
get par formulaire => possible
post par adresse => totalement impossible
post par formulaire => possible
 
C'est comme ça, et pas autrement.
 
Enfin bon, c'est un dialogue de sourd avec hyptnos alors je m'arrête là.

Reply

Marsh Posté le 25-08-2005 à 19:03:15    

Mais non mais on ne ma pas encore fait voir comment faire on met dit que par GET c possible mais je ne maitrise pas donc si on ne m'aide pas je vois pas comment je pourrais faire

Reply

Marsh Posté le 25-08-2005 à 20:09:22    

hyptnos a écrit :

Mais moi peut importe la methode pour le moment j'ai  
 
quelque chose comme
 

Code :
  1. $requete="SELECT  * from news order by date_news DESC LIMIT 0, 15 ";
  2.  $resultat=mysql_db_query($sql_bdd,$requete,$db_link);
  3.   while ($rang=mysql_fetch_array($resultat)){
  4.   $titre=$rang['titre_news'];
  5.   $date=$rang['date_news'];
  6.   $id_news=$rang['id_news'];
  7.   $auteur=$rang['auteur_news'];
  8.   $date=$rang['date_news'];
  9.   $source=$rang['source_news'];
  10.   $resume=$rang['resume_news'];
  11.  ?>
  12.  <hr>
  13.  <form action="aff_news.php" method="post">
  14.  <input type="hidden" value="<? echo $id_news; ?>" name="id_news">
  15.  <table width="550" border="0">
  16.  <tr>
  17.  <td width="50" valign="top"><table width="50" height="50" border="1"><tr><td></td></tr></table></td>
  18.  <td width="450" valign="top"><b><? echo $titre; ?> </b>
  19.  <br>
  20.  <a> Posté le <i><? echo $date; ?> </i> par <b> <? echo $auteur; ?> </b> source : <? echo $source; ?>


 
Donc on voit la boucle et dans la boucle un form qui va lorsque l'on clique dessus allez vers aff_news.php avec pour variable a passe $id_news
c'est une boucle donc il aurai autant de bouton que de news or je ne veux pas un bouton je veux juste "voir la suite"  


 
....
 

Code :
  1. echo '<a href="aff_news.php?id_news=', $id_news, '">Voir la suite...</a>';


 
A chaque itération de la boucle. Je vois pas ce qu'il te faut de plus. :heink:


Message édité par sielfried le 25-08-2005 à 20:10:31

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 25-08-2005 à 20:41:43    

Ah bas merci je savais pas faire ca :-)
 
Je vais essayé merci a toi c le genre de reponse que j'attendais :-)

Reply

Marsh Posté le 25-08-2005 à 21:24:19    

Merci merci cela marche impec c'est tout a fait ce que je voulais faire
je me coucherais moins con se soir :-)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed