Page 1 sur 1

boutons submit identiques sur une même page

Posté : 21 oct. 2005, 23:40
par alcofribas
Bonjour,

Bon, voila le problème: je viens de créer un site de vente, où les produits sont regroupés par catégories. (je fonctionne avec des sessions)
Donc, une page peut comprendre plusieurs produits appelés dans ma page par include_once(), avec chacun un champs et un bouton submit (identique pour tous et répété dans chaque fichier appelé) pour les quantités...
Ce qui se passe, c'est que quand je remplis un champs pour un produit donné et que je soumets la requête, mon code me dit que mon champs et vide... Sauf si je remplis le champs du dernier produit affiché sur la page.
Je ne peut pas donner un nom différent à chaque <form>, sinon il me faudra tester tout ça dans le fichier qui reçoit les variables...

commment faire?

Posté : 22 oct. 2005, 00:07
par Elie
Peut-on voir ton code et savoir l'erreur que cela provoque ?

Posté : 22 oct. 2005, 01:28
par Truc
Salut, tu peut peut eter donner des noms différents aux boutons

Posté : 23 oct. 2005, 16:08
par alcofribas
Voilà le code commenté.

Chaque produit est appelé comme ceci dans mes pages:
<?php
        include_once('article1.php');
?>                              
<?php
        include_once('article2.php');
?>
Voici le contenu type de ces fichiers:
<form method="post" name="Commander" action="Panier.php">                              
                                                <tr>
                                                        <td colspan="1" rowspan="1" style="width: 250px; vertical-align: middle; text-align: left; font-family: Optima; font-weight: bold; color: rgb(255, 255, 255);">
                                                               <div style="margin-left: 20px;">
                                                               <span style="color: rgb(255, 255, 255); font-weight: bold; text-decoration: underline;">

//J'appelle la référence du produit
                                                               <?php
                                                               require_once ('ref.php');
                                                               require ('refprod.php');
                                                               echo '<input type="hidden" value="'.$refprod.'" name="reference">'.$refprod;
                                                               ?> 
                                                               </small>
                                                               </div>
                                                        </td>
          
                           </tr>        
                              
                           <tr>
        
                                      <td style="width: 300px; vertical-align: middle; text-align: right; color: rgb(255, 255, 255); font-family: Optima; font-weight: bold;">
                                                
                                                                <small>Quantit&eacute;s souhait&eacute;es :</small>
                                                                <input maxlength="3" size="3" name="quantite">
                                                
                                         </td>
                                          
                                         <td style="width: 200px; vertical-align: middle; text-align: right; color: rgb(255, 255, 255); font-weight: bold;">
// Affichage du bouton submit               
                                                                <?php                                                                include('affichsubmit.php');
                                                                ?>                                                            </td>
                                 
                               </tr>            
Je nomme ces boutons dynamiquement en leur donnant l'id du produit appelé. Je crois que c'est un début de réponse, mais je ne sais pas comment tester de l'autre côté le nom de boutons. Sans doute avec for qcc, mais je ne vois pas exactement quoi:
<?php
echo '<span style="color: rgb(255, 255, 255); font-weight: bold;">
<input type="image" src="Commander.jpg" name="'.$id.'">';
?>
Enfin, voici la façon dont je teste le tout:
<?php
if (isset($_POST["Commander"])){

    $refprod = $_POST["reference"];
    $qt = $_POST["quantite"];
    
    $pa = $_POST["prix"];

//Je vérififie que l'article n'est pas déjà dans le panier

    require_once('deja.php');
    
    if(!verif_panier($refprod)) {
   
    //vérification de la validité des données du formulaire //
    if(!is_numeric($qt)) { 
        
        require_once('qt_non_num.php');
        exit(); 
     
     } else {
    
    array_push($_SESSION ['caddie']['produit']['quantite'], $qt);
//etc.

}

   }
   }
   
?>

Posté : 23 oct. 2005, 16:35
par Truc
j'ai fait un test tout simple avec 2 formulaire au meme nom avec chacun un champ text au meme nom et chacun un bouton submit au meme nom aussi et ça ne pose pas de prolemes :-k

sauf que je teste l'existence de la variable POST correspondant au champ text.

essaie avec ce test sur la page de traitement:
$ref= isset($_POST['reference']) ? $_POST['reference'] :"Pas de référence";
echo '<p>'.$ref.'</p>';
de meme pour les autres champs (quantite, prix)

Posté : 23 oct. 2005, 19:24
par alcofribas
Oups!!!
Pardon, pardon, c'était une erreur de manip de ma part.
J'ai changé mes boutons submit par des images et j'ai supprimé par erreur la valeur de ces boutons, et avec les copier/coller il me manquait un </form> à la fin d'un formulaire... Evidemment, comme ça, ça marche moins bien. :oops:

Désolé.
Sinon, tu avais raison, tout fonctionne sans problème. Mais je crois que sans valeur, le bouton submit sous forme image ne fonctionne pas (????).
Du moins, c'est ce que j'ai vérifié dans mon code.

Posté : 23 oct. 2005, 19:31
par Truc
Mais je crois que sans valeur, le bouton submit sous forme image ne fonctionne pas (????).
Du moins, c'est ce que j'ai vérifié dans mon code.
sans valeur je sais pas (pas testé), mais pour les boutons image il faut récupèrer le clic sur celle-ci !!

si le bouton s'appel "ok" alors tu récupère en faissant $_POST['ok_x'] ou $_POST['ok_y']