$_POST ne récupère pas les infos d'une page à l'autre

Résolu
ragmo Messages postés 10 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 16 juillet 2009 - 15 juil. 2009 à 13:37
ragmo Messages postés 10 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 16 juillet 2009 - 16 juil. 2009 à 13:45
Bonjour à tous,

Je vous expose mon souci :
Sur une page produits j'ai les produits affichés, chacun dans son cadre avec les liens "En savoir plus .." pour afficher toutes les informations disponible sur le produit ; et "Ajouter au panier" permettant d'ajouter directement le produit avec quantité = 1 au panier.
L'ajout au panier de produits en passant par "En savoir plus .." marche très bien. Mais le lien "Ajouter au panier" ne marche pas, car il ne rajoute rien au panier et pourtant je vois les champs et leurs valeurs dans l'URL.
J'ai essayé en vain d'incorporer un formulaire caché avec chacun des produits, puis d'utiliser un seul formulaire en modifiant ses valeurs par JavaScript:'OnClick = ..." ensuite soumettre ce formulaire.
La méthode est POST et l'action est "panier.php" mais rien ne se passe.

Etant donné que je séche. Y a-t-il-quelqu'un qui a une idée là-dessus ?


avec tous remerciements.


Avec le temps ...Avec le temps ... Avec le temps ...

3 réponses

ragmo Messages postés 10 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 16 juillet 2009
16 juil. 2009 à 13:45
Il s'agit d'une faute d'étourderie.. Rien ne sert de rester des heures et des heures derrière son ordi, il faut faire des pauses et parfois de longues pauses.

L'erreur est là : <form id="ajouter" name= "ajouter" action= "traite.php" action ="post">
a remplacer par method ="post".

Désolé et merci d'avoir pris la peine de lire ce post-it.
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
15 juil. 2009 à 19:17
Salut,

A part te donner une réponse hasardeuse il n'est pas possible de t'aider, fournis donc le code nécessaire !!


Cordialement,


Kohntark -
0
ragmo Messages postés 10 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 16 juillet 2009
15 juil. 2009 à 22:04
Merci Kohmtark !

Voici le code
I - Partie Javascript dans le Head de la page
function ajouter_au_panier(sid, titre, auteur, prix, repere)
{
document.ajouter.id.value= sid;
document.ajouter.titre.value=titre;
document.ajouter.auteur.value=auteur;
document.ajouter.prix.value=prix;
document.ajouter.repere.value=repere;
// On soumet le formulaire.
document.ajouter.submit();
}
II - Partie Affichage données : Formulaire (Html) + traitement d'affichage en PHP:


<!-- Formulaire pour savoir quoi ajouter au panier -->
<form id ="ajouter" name= "ajouter" action="traite.php" action="post">







</form>
<!-- Les données issues de la requête, Top des ventes, doivent être affichées ici -->
<?
$sql = \"SELECT p.id, p.titre, repere, auteur, complement_auteur, nombrepages, format, editeur,isbn, prix,public,nature,langue, sum(d.qte_com) \";
$sql.= \" FROM produits p, commandes c, details_com d WHERE p.id=c.id AND c.num_com=d.num_com \";
$sql.= \" GROUP BY p.titre, repere, auteur, complement_auteur, nombrepages, format, editeur,isbn, prix,public,nature,langue ORDER BY sum(d.qte_com) DESC\";
$sql.= \" limit 0,5 \";
require('inc_connect.php');
$top = mysql_query( $sql ) or die(mysql_error());

while($info = mysql_fetch_array( $top )) {
$titre=$info['titre'];
$repere=$info['repere'];
$prix=$info['prix'];
$auteur=$info['auteur'];
$editeur=$info['editeur'];
$nombrepages=$info['nombrepages'];
$id=$info['id'];
$titre_sq=str_replace(\"'\",\"\'\",$titre);
//$action=\"\";
$action=\"');\\" onmouseout= \\"cache();\\">

\";
?>
----

<? echo($action); ?>,
<? echo ( $titre ) ; ?>

<? echo ( $auteur ); ?>

<? echo ( $format ); ?>

<? echo ($nombrepages ); ?> Prix <? echo ( $prix );?> €

ISBN : <? echo ($isbn ); ?>

> En savoir plus..


<? echo ""; ?>,
<?
}
mysql_close();
?>



La page appelée en POST "traite.php" est une page où il n'y a que le code ci-dessous, normalement la page appelée est "traitement.php" qui effectue l'ajoute, entre autre, au panier mais comme cela ne marchait pas je voulais simplifier pour essayer de corriger le Pb.
Code traite.php :
<?
$id =$_POST['id'];
$qte=$_POST['qte'];
$titre=$_POST['titre'];
$auteur=$_POST['auteur'];
$prix=$_POST['prix'];
$repere=$_POST['repere'];
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Traitement du panier</title>
</head>

Traitement du panier

<?
echo "$id";
echo "$qte";
echo "$titre";
echo "$auteur";
echo "$prix";
echo "$repere";
?>

</html>

J'espère que tu y verras un peu plus clair.
Cordialement.
0
Rejoignez-nous