Résolu Update ma BDD grâce à un formulaire

-PizzaHut-

Premium
Inscription
4 Septembre 2013
Messages
682
Réactions
232
Points
17 641
RGCoins
25
Bonsoir,

Après avoir passer quelques bonnes heures à finir totalement mon site, je me suis dit que pouvoir changer l'état d'une commande passer par un client grâce à un formulaire accessible uniquement au admin serait une bonne chose.

J'ai essayé plusieurs façons en vain ... j'ai penser à un UPDATE mais le problème étant que je dois définir l'id de la commande à modifier avant tout en fonction de quel état est modifier.

Et c'est la que je bloque mes connaissances actuelles ne me permettent pas de faire cela si vous avez une solution à me proposer afin de répondre à ce problème j'en serait très reconnaissant :)

PS : Sachant que j'affiche déjà les commandes sur le panel admin grâce à :

PHP:
<?php
    $test = $bdd->query('SELECT id FROM commande');
    foreach($test as $test)
    {
        echo"
    
        <ul class='navigation'>
            <li class='toggleSubMenu'><span>Etat de la commande n°&nbsp;".$test['id']."</span>
                <ul class='subMenu'>
                    <li><a>
                    <font face='Montserrat'>
                        <form method='POST' class='row' action='admin.php'>
                            <label>&nbsp;Etat :</label>
                                <select name='statue'>
                                    <option value='En attente'>En attente</option>
                                    <option value='En cours'>En cours</option>
                                    <option value='Fini'>Finie</option>
                                    <option value='Refusée'>Refusée</option>
                                </select>
                                </br></br>
                            <div class='form-group-lg'>
                                <button class='link' name='submit'>Modifier</button>
                            </div>
                            </br>
                        </form>
                    </font></a></li>
                </ul>
            </li>
        </ul></br>";
    }

?>

Voici aussi le code entier de la page

Code:
<?php
    require "config.php";   
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ItsTrapp</title>

<!-- Police de la page -->
<link href='http://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300,800italic,700italic,600italic,400italic,300italic,800,700,600' rel='stylesheet' type='text/css'>

<!-- Chargement des styles -->
<link href="css/bootstrap.css" rel="stylesheet" type="text/css">
<link href="css/style.css" rel="stylesheet" type="text/css">
<link href="css/font-awesome.css" rel="stylesheet" type="text/css">
<link href="css/responsive.css" rel="stylesheet" type="text/css">
<link href="css/animate.css" rel="stylesheet" type="text/css">

<!-- Chargement du JS -->

<script type="text/javascript" src="js/jquery.1.8.3.min.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script type="text/javascript" src="js/jquery-scrolltofixed.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/jquery.isotope.js"></script>
<script type="text/javascript" src="js/wow.js"></script>
<script type="text/javascript" src="js/classie.js"></script>
<script type="text/javascript" src="js/typed.js"></script>
<script type="text/javascript">
$(document).ready( function () {
    // On cache les sous-menus :
    $(".navigation ul.subMenu").hide();
    // On sélectionne tous les items de liste portant la classe "toggleSubMenu"

    // et on remplace l'élément span qu'ils contiennent par un lien :
    $(".navigation li.toggleSubMenu span").each( function () {
        // On stocke le contenu du span :
        var TexteSpan = $(this).text();
        $(this).replaceWith('<a href="" title="Afficher le sous-menu">' + TexteSpan + '<\/a>') ;
    } ) ;

    // On modifie l'évènement "click" sur les liens dans les items de liste
    // qui portent la classe "toggleSubMenu" :
    $(".navigation li.toggleSubMenu > a").click( function () {
        // Si le sous-menu était déjà ouvert, on le referme :
        if ($(this).next("ul.subMenu:visible").length != 0) {
            $(this).next("ul.subMenu").slideUp("normal");
        }
        // Si le sous-menu est caché, on ferme les autres et on l'affiche :
        else {
            $(".navigation ul.subMenu").slideUp("normal");
            $(this).next("ul.subMenu").slideDown("normal");
        }
        // On empêche le navigateur de suivre le lien :
        return false;
    });    


} ) ;
</script> 
</head>
<body>
<section>
        <nav class="main-nav-outer" id="navbar">
            <div class="container">
                <ul class="main-nav">
                        <li><a href="index.php">Accueil</a></li>
                        <li><a href="index.php#Portfolio">Portfolio</a></li>
                        <li><a href="index.php#Shop">Shop</a></li>
                        <li class="small-logo"><a href="#Entête"><img src="img/logo.png"></a></li>
                        <li><a href="panel.php">Panel</a></li>
                        <li><a href="commande.php">Commande</a></li>
                        <?php if(isset($_SESSION['id'])) { ?>
                        <li><a href="logout.php">Déconnexion</a></li><?php } ?>
                </ul>
            </div>
        </nav>
</section>   
<section>
</br>

<h2><center>Espace d'administration</center></h2></br>
<p><b><center><h4 style="width:250px;border:2px solid #999999;">Liste des membres</h4></center></b></p>
<?php if(isset($erreur)) { ?><p><font color="red"><i class="fa fa-exclamation-circle"></i> <?= $erreur; ?></p></font><?php } ?>
<center>
<?php
    require "config.php";

    if(isset($_SESSION['id']) AND $_SESSION['grade'] != 'Admin'){
        header('Location: exit.php');
    } elseif(!isset($_SESSION['id'])){
        header('Location: login.php');
    }

echo utf8_decode('<br/>');
   

    $users = $bdd->query('SELECT * FROM users');
    foreach($users as $users)
    {
        echo "<p><h3><span style='color:#6AA84F' class='fa fa-user'></span> ".$users['pseudo']." | <span style='color:#912519' class='fa fa-envelope'></span> ".$users['email']." | <span style='color:#394BA4' class='fa fa-chevron-circle-right'></span> ". $users['grade']."</h3></p>";
    }
   
?>
</br><p><b><center><h4 style="width:250px;border:2px solid #999999;">Gerer les commandes</h4></center></b></p></br>
<?php 
    $test = $bdd->query('SELECT id FROM commande');
    foreach($test as $test)
    {
        echo"
       
        <ul class='navigation'>
            <li class='toggleSubMenu'><span>Etat de la commande n°&nbsp;".$test['id']."</span>
                <ul class='subMenu'>
                    <li><a>
                    <font face='Montserrat'>
                        <form method='POST' class='row' action='admin.php'>
                            <label>&nbsp;Etat :</label>
                                <select name='statue'>
                                    <option value='En attente'>En attente</option>
                                    <option value='En cours'>En cours</option>
                                    <option value='Fini'>Finie</option>
                                    <option value='Refusée'>Refusée</option>
                                </select>
                                </br></br>
                            <div class='form-group-lg'>
                                <button class='link' name='submit'>Modifier</button>
                            </div>
                            </br>
                        </form>
                    </font></a></li>
                </ul>
            </li>
        </ul></br>";
    }
   
?>                 
</br><p><b><center><h4 style="width:250px;border:2px solid #999999;">Liste des commandes</h4></center></b></p>

<?php
    require "config.php";

echo utf8_decode('<br/>');
   
   
    $commande = $bdd->query('SELECT * FROM commande');
    foreach($commande as $commande)
   
    {
    echo"<ul class='navigation'>
            <li class='toggleSubMenu'><span>Commande n°&nbsp;".$commande['id']."</span>
                <ul class='subMenu'>
                    <font color='#fff'>
                    <li><a>
                    <i style='color:#25779A' class='fa fa-clock-o' aria-hidden='true'></i>&nbsp;Statue:&nbsp;".$commande['statue']."
                    </br><i style='color:#000' class='fa fa-file-image-o' aria-hidden='true'></i>&nbsp;Type:&nbsp;".$commande['type']."
                    </br><i style='color:#000' class='fa fa-file-image-o' aria-hidden='true'></i>&nbsp;Style:&nbsp;".$commande['style']."
                    </br><i style='color:#6AA84F' class='fa fa-user'></i>&nbsp;Pseudo:&nbsp;".$commande['pseudo']."
                    </br><i style='color:#A42D2D' class='fa fa-pencil'></i>&nbsp;Couleur Principal:&nbsp;".$commande['principal']."
                    </br><i style='color:#3F44AC' class='fa fa-pencil'></i>&nbsp;Couleur Secondaire:&nbsp;".$commande['secondaire']."&nbsp;
                    </br><i style='color:#6C4A07' class='fa fa-envelope'></i>&nbsp;Email de contact:&nbsp;".$commande['email']."
                    </br><i style='color:#971C88' class='fa fa-file-text' aria-hidden='true'></i>&nbsp;Description:</br></br>".$commande['description']."</a></li>
                    </font>
                </ul>
            </li>
        </ul></br>";
       
    }
?>

</center>
</section>
</body>
</html>
Et bien je ne sait pas comment retrouvez par la suite la commande qui a vu son état modifier et faire comprendre sa à la BDD.

Voici un screen de ma BDD

9a3b785af3c54a70964716e8fe37b532.png

J'espère que vous m'avez compris malgrès que sa soit un peu confus.


Merci d'avance
 
Salut,

tu peux mettre un input de type hidden dans ton formulaire pour savoir lequel est a UPDATE. Ou bien une méthode POST sur une action avec un paramètre en GET.
PHP:
echo '<form method="POST" action="todo.php?id='.$var.'">';

Bonne soiree,
AwH.
 
Cette réponse a aidé l'auteur de cette discussion !
Salut,

tu peux mettre un input de type hidden dans ton formulaire pour savoir lequel est a UPDATE. Ou bien une méthode POST sur une action avec un paramètre en GET.
PHP:
echo '<form method="POST" action="todo.php?id='.$var.'">';

Bonne soiree,
AwH.

Excuse moi j'ai un peu de mal à comprendre, l'input de type hidden contiendrais la valeur de l'id c'est bien sa ? mais après comment faire pour bien update la BDD
Si tu avait l'amabilité de me corriger le code sa serait super :)
Merci d'avance

Edit : Résolu, Merci @AwH
 
Dernière édition:
Retour
Haut