Je cherche à rafraichir la page panier de mon site lorsque l'utilisateur change la quantité de l'article.
Du coup j'ai un bouton pour rafraichir et un pour valider le formulaire.

Evidemment j'ai un problème car quand je clique sur rafraichir ça me demande de remplir les champs obligatoire.
Sauf que je ne peux pas les séparer en 2 formulaire car j'ai un champ message au dessus du panier et je dois le récupérer avec le formulaire.

<form method="POST">
        <div class="container-cart">
            <div class="products-in-cart">
                <div class="container-message-client-cart">
                    <div class="text-container-message-client-cart">Votre message :</div>
                    <textarea name="message-client-cart" id="message-client-cart" cols="63" rows="5"><?php if (isset($message)) echo $message; ?></textarea>
                </div>
                <?php if ($erreurMontantHT == true) { ?>
                    <div class="message-Montant-HT" style="margin-top: 10px;">
                        Tout panier inférieur à 20€ aura pour montant total 20€.
                    </div>
                <?php
                } ?>
                <div class="title-container-cart">
                    Votre panier
                </div>
                <div class="little-container-products-cart">
                    <table>
                        <tr>
                            <th>MPN</th>
                            <th>Quantité</th>
                            <th>Datecode</th>
                            <th>Packaging</th>
                            <th>Drypack</th>
                            <th>COC</th>
                            <th>Prix produit</th>
                        </tr>
                        <?php
                        if (creationPanier()) {
                            //Calcul le nombre d'articles grâce aux nombre de lignes dans MPN
                            $nbArticles = count($_SESSION['panier']['MPN']);
                            if ($nbArticles <= 0)
                                echo "<tr><td>Votre panier est vide </ td></tr>";
                            else {
                                for ($i = 0; $i < $nbArticles; $i++) {
                                    echo "<tr>";
                                    echo "<td>" . htmlspecialchars($_SESSION['panier']['MPN'][$i]) . "</ td>";
                                    echo "<td><input type=\"text\" size=\"4\" name=\"q[]\" value=\"" . htmlspecialchars($_SESSION['panier']['qteProduit'][$i]) . "\"/></td>";
                                    echo "<td>" . htmlspecialchars($_SESSION['panier']['datecode'][$i]) . "</td>";
                                    echo "<td>" . htmlspecialchars($_SESSION['panier']['packaging'][$i]) . "</td>";
                                    echo "<td>" . htmlspecialchars($_SESSION['panier']['drypack'][$i]) . "</td>";
                                    echo "<td></td>";
                                    echo "<td>" . htmlspecialchars($_SESSION['panier']['prixProduit'][$i]) . "</td>";
                                    echo "<td><a href=\"" . htmlspecialchars("cart.php?action=suppression&m=" . rawurlencode($_SESSION['panier']['MPN'][$i]) . "&d=" . rawurlencode($_SESSION['panier']['datecode'][$i]) . "&pack=" . rawurlencode($_SESSION['panier']['packaging'][$i])) . "\">Supprimer Article</a></td>";
                                    echo "</tr>";
                                }

                                echo "<tr><td colspan=\"2\"> </td>";
                                echo "<td colspan=\"2\">";
                                echo "Total : " . MontantGlobal();
                                echo "</td></tr>";

                                echo "<tr><td colspan=\"4\">";
                                echo "<input type=\"submit\" value=\"Rafraichir\"/>";
                                echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>";

                                echo "</td></tr>";
                            }
                        }
                        ?>
                    </table>
                </div>
            </div>
            <div class="container-info-cart">
                <div class="title-container-cart">
                    Enregistrement :
                </div>
                <div class="little-container-info-cart" id="1">
                    <div class="text">Votre nom *</div>
                    <input type="text" name="name" required value="<?php if (isset($name)) echo $name; ?>">
                </div>
                <div class=" little-container-info-cart" id="2">
                    <div class="text">Votre société *</div>
                    <input type="text" name="company" required value="<?php if (isset($company)) echo $company; ?>">
                </div>
                <div class=" little-container-info-cart" id="3">
                    <div class="text">Votre e-mail *</div>
                    <input type="text" name="mail" required value="<?php if (isset($mail)) echo $mail; ?>">
                    <?php if ($errorMail == true) {
                    ?>
                        <div class="a-alert-content a-alert-container">
                            <i class="a-icon a-icon-alert"></i>
                            <div>
                                Email non valide
                            </div>
                        </div>
                    <?php
                    } ?>
                </div>
                <div class=" little-container-info-cart" id="4">
                    <div class="text">Votre téléphone</div>
                    <input type="text" name="phone" value="<?php if (isset($phone)) echo $phone; ?>">
                </div>
                <div class="little-container-info-cart-radio" id="5">
                    <div class="btn-exp-cart">
                        <span>EXP</span>
                        <input type="radio" class="btn-radio1-cart" name="type-livraison" value="exp" <?php if ((isset($typeLivraison) and $typeLivraison == "exp") or empty($typeLivraison) or $typeLivraison != "ddp") echo "checked"; ?>>
                    </div>
                    <div class="btn-ddp-cart">
                        <span>DDP</span>
                        <input type="radio" class="btn-radio2-cart" name="type-livraison" value="ddp" <?php if (isset($typeLivraison) and $typeLivraison == 'ddp' and $success == false) echo "checked"; ?>>
                    </div>
                    <div class="btn-coc-cart">
                        <span>COC</span>
                        <input type="checkbox" class="btn-radio3-cart" name="coc" value="coc" <?php if (isset($coc) and $coc = 'coc' and $success == false) echo "checked"; ?>>
                    </div>
                </div>
                <div class="container-button-cart">
                    <input id="btn-demande-cotation" type="submit" name="demande-cotation" value="Demande de cotation">
                </div>
            </div>
        </div>
    </form>

2 réponses


Lartak
Réponse acceptée

Bonjour.
Tu pourrais par exemple ajouter l'attribut formnovalidate à l'imput qui sert à raffraichir la page, ce qui te permettra d'éviter que le navigateur fasse la validation du formulaire lorsque cet input est utilisé.
Pour en savoir plus : <input type="submit"> - HTML (HyperText Markup Language) | MDN » Attributs supplémentaires: formnovalidate.

Bonjour,
C'est bon je viens de test ça fonctionne, merci.