boutons submit identiques sur une même page

Eléphant du PHP | 150 Messages

21 oct. 2005, 23:40

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?

Mammouth du PHP | 1339 Messages

22 oct. 2005, 00:07

Peut-on voir ton code et savoir l'erreur que cela provoque ?
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 oct. 2005, 01:28

Salut, tu peut peut eter donner des noms différents aux boutons

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 150 Messages

23 oct. 2005, 16:08

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.

}

   }
   }
   
?>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 oct. 2005, 16:35

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)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 150 Messages

23 oct. 2005, 19:24

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 oct. 2005, 19:31

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']

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute