[RESOLU] tableau dynamique

Eléphant du PHP | 243 Messages

15 déc. 2015, 20:32

dans ma bd j'ai creer une colonne "quantité" .varchar(45) utf8_general_ci
Le code semble correct, par contre fais attention, tu as mis un accent dans dans ta bdd à quantité, et il n'y en a pas dans le programme.
Normalement, toutes les données devraient s'afficher.

Pour ta deuxième question qui est de pouvoir modifier des données directement en cliquant dessus, il faudra utiliser des requêtes Ajax.
J'avais fait un système similaire il y a peu qui permettait de modifier directement les données d'un tableau.
Je t'explique :

C'est lors du chargement de la page que tu vas charger tes données, et ceci à l'aide de PHP :
foreach($results as $result){
                            echo "<tr>";
                            echo "  <td>{$result['code_article']}</td>";
                            echo "  <td>{$result['designation']}</td>";
                            echo "  <td>{$result['fournisseur']}</td>";
                            echo "  <td>{$result['marque']}</td>";
          echo "  <td>{$result['unite_commande']}</td>";
                            $prix = explode('.', $result['prix_ht']);
                            echo "  <td>$prix[0]€$prix[1]</td>";
                            echo "  <td><input onKeyPress="if (event.keyCode == 13) valider('+ $result['code_article'] +')" onblur="valider('+ $result['code_article'] +')" type="text" id="'+ $result['code_article'] +'" value="'+ $result['quantite'] +'"></td>";
                            echo "  <td class='center hidden-print'><a href='{$_SERVER['PHP_SELF']}?del={$result['code_article']}'><i class='glyphicon glyphicon-minus'></i></a></td>";
                            echo "</tr>";
                        }
                        ?>
Tu remarqueras que j'ai mis un input. Celui ci appellera la fonction valider(code_article) si tu appuies sur la touche "entrer" ou alors lorsque tu quitteras l'input. Il possède aussi un id équivalent au code_article (c'est l'identité de l'input pour que Javascript puisse savoir quelle quantité il va devoir modifier) et sa valeur par défaut sera celle référencé dans la bdd.

Maintenant, il va falloir s'occuper de la partie Javascript. Comme tu as pu le voir ci-dessus, lorsque l'utilisateur aura terminer sa modification, on appellera la fonction valider(code_article).
Pour ça, rien de plus simple :
<script>
function valider(id_article){
    var $quantite = document.getElementById($id_article).value; // On récupère la quantité renseigné dans l'input
    $.ajax({
        url : "modifier_quantite.php", // On cible modifier_quantite.php
        type : "POST", // Type POST
        data: {id_article:$id_article, quantite:$quantite},
        success : function(html){ // html renvoyé
            refresh(); // Une autre fonction qui permet d'actualiser
        }
    });
}


function refresh() {

    // Je te laisse travailler un peu !

}
</script>
Et enfin un fichier php (modifier_quantite.php) qui permettra la modification de la quantité :
<?php
$id_article = $_GET["id_article"];
$quantite = $_GET["quantite"];

$base = mysql_connect ('IP', 'USER', 'PASS');
mysql_select_db ('NOM_DB', $base);

$sql = 'UPDATE essais SET quantite="'.$quantite.'" WHERE code_article="'.$id_article.'"'; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

mysql_close ($base)
echo "success";

?>
Avec l'arrivée de PHP 7, mon code php va devenir obsolète. À toi de l'adapter ! :lol:

Bon et bien voilà, j'espère que tout ceci t'aidera.
Bon courage ! :wink:
Modifié en dernier par Ascla le 15 déc. 2015, 21:49, modifié 1 fois.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphanteau du PHP | 32 Messages

15 déc. 2015, 21:37

Bonsoir Ascla,

merci beaucoup de ton aide .
j'ai enlevé l'accent sur ma bd , par contre aucune donné de ma bd s'affiche dans mon tableau .

Merci