<?php
include "session.php";
include "db.php";
if (!isset($_SESSION['cart']))
$_SESSION['cart'] = array();
if (!empty($_GET['add']))
{
array_push($_SESSION['cart'], $_GET['add']);
header("Location: {$_SERVER['PHP_SELF']}");
}
if (!empty($_GET['del']))
{
foreach ($_SESSION['cart'] as $element)
{
if ($element == $_GET['del'])
$_SESSION['cart'] = delete_element($element, $_SESSION['cart']);
}
header("Location: {$_SERVER['PHP_SELF']}");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<header id="logo">
<a href="index.php"><img src="image/header.png"></a>
</header>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<title>projet</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.9/css/dataTables.bootstrap.min.css">
<link href="mercuriale.css" rel="stylesheet">
<script src="http://getbootstrap.com/assets/js/ie-emulation-modes-warning.js"></script>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<?php
if (count($_SESSION['cart']) > 0) {
$condition = " WHERE code_article IN (";
foreach ($_SESSION['cart'] as $element)
$condition .= $element.',';
$condition = substr($condition,0, -1);
$condition .= ")";
$requete = $bdd->prepare("SELECT DISTINCT code_article, designation, fournisseur, marque, prix_ht FROM essais
$condition ORDER BY prix_ht asc");
$requete->execute();
}
else {
$requete = $bdd->prepare("SELECT DISTINCT code_article, designation, fournisseur, marque, prix_ht FROM essais where code_article=-1");
$requete->execute();
}
$results = $requete->fetchAll(PDO::FETCH_ASSOC);
?>
<nav class="navbar hidden-print">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="essais.php"><i class='glyphicon glyphicon-list-alt'></i> Liste recherche</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="BC.php"><i class='glyphicon glyphicon-shopping-cart'></i> Bon de Commande</a></li>
<li class="dropdown">
<ul class="dropdown-menu">
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section class="main" >
<div class="container-fluid middle">
<div class="col-xs-12 col-md-8 col-md-offset-2" id="resulat">
<?php
$class = (count($_SESSION['cart']) > 0)?"":"disabled='disabled'";
?>
<div class="center row hidden-print">
<button class="btn btn-default"<?php echo $class; ?> id="print">Imprimer</button>
</div>
<table id="tarif" class="row table table-striped table-hover" cellspacing="0" width="100%">
<thead>
<tr>
<th>Code Article</th>
<th>Désignation</th>
<th>Fournisseur</th>
<th>Marque</th>
<th>Prix</th>
<th class="hidden-print">Selection</th>
</tr>
</thead>
<tbody>
<?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 class='center hidden-print'><a href='{$_SERVER['PHP_SELF']}?del={$result['code_article']}'><i class='glyphicon glyphicon-minus'></i></a></td>";
echo "</tr>";
}
?>
</tbody>
</table>
</div>
</div>
</section>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.9/js/dataTables.bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$('#tarif').DataTable( {
language: {
"sProcessing": "Traitement ...",
"sSearch": "Rechercher :",
"sLengthMenu": "Afficher _MENU_ éléments",
"sInfo": "_START_ à _END_ / _TOTAL_ ",
"sInfoEmpty": "0 à 0 sur 0 éléments",
"sInfoFiltered": "(filtré de _MAX_ éléments au total)",
"sInfoPostFix": "",
"sLoadingRecords": "Chargement en cours...",
"sZeroRecords": "Aucun élément à afficher",
"sEmptyTable": "Aucune donnée disponible dans le tableau",
"oPaginate": {
"sFirst": "Premier",
"sPrevious": "Précédent",
"sNext": "Suivant",
"sLast": "Dernier"
},
"oAria": {
"sSortAscending": ": activer pour trier la colonne par ordre croissant",
"sSortDescending": ": activer pour trier la colonne par ordre décroissant"
}
},
"lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "Tout"] ]
});
$('#print').click(function(){
window.print();
});
});
</script>
<footer>
<p><img src="image/footer1.png"></p>
</footer>
</body>
</html><?php
if (count($_SESSION['cart']) > 0) {
$condition = " WHERE code_article IN (";
foreach ($_SESSION['cart'] as $element)
$condition .= $element.',';
$condition = substr($condition,0, -1);
$condition .= ")";
$requete = $bdd->prepare("SELECT DISTINCT code_article, designation, fournisseur, marque, prix_ht, ICI_LE_NOUVEL_ATTRIBUT FROM essais
$condition ORDER BY prix_ht asc");
$requete->execute();
}
else {
$requete = $bdd->prepare("SELECT DISTINCT code_article, designation, fournisseur, marque, prix_ht, ICI_LE_NOUVEL_ATTRIBUT FROM essais where code_article=-1");
$requete->execute();
}
$results = $requete->fetchAll(PDO::FETCH_ASSOC);
?>
Puis modifier le côté HTML (rajouter une colonne dans le tableau).<thead>
<tr>
<th>Code Article</th>
<th>Désignation</th>
<th>Fournisseur</th>
<th>Marque</th>
<th>Prix</th>
<th>NOUVEL_ATTRIBUT</th>
<th class="hidden-print">Selection</th>
</tr>
</thead>
Et enfin la lecture de données (en PHP) qui permet le remplissage de ton tableau.<?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>{$result['NOUVEL_ATTRIBUT']}</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>";
}
?>
Une fois ceci en place, l'affichage devrait être parfait.Qu'est-ce qui ne fonctionne pas ?mes essais ne sont pas concluants
Du coup, l'utiliser ou non, ton problème restera toujours le même car il relève de PHP et de BDD, et non de Javascript.DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, and will add advanced interaction controls to any HTML table.
Lorsque tu dis "manuellement", c'est directement depuis ton tableau graphique ? Ou alors depuis ta bdd ?pour ajouter une quantité manuellement ce n'est peut pas possible ?
<?php
include "session.php";
include "db.php";
if (!empty($_GET['add']))
{
array_push($_SESSION['cart'], $_GET['add']);
header("Location: {$_SERVER['PHP_SELF']}");
}
if (!empty($_GET['del']))
{
foreach ($_SESSION['cart'] as $element)
{
if ($element == $_GET['del'])
$_SESSION['cart'] = delete_element($element, $_SESSION['cart']);
}
header("Location: {$_SERVER['PHP_SELF']}");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<title>Mercuriale</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.9/css/dataTables.bootstrap.min.css">
<link href="css/mercuriale.css" rel="stylesheet">
<script src="http://getbootstrap.com/assets/js/ie-emulation-modes-warning.js"></script>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
</head>
<body>
<header id="logo">
<a href="index.php"><img src="image/header.png"></a>
</header>
<?php
if (count($_SESSION['cart']) > 0) {
$condition = " WHERE code_article IN (";
foreach ($_SESSION['cart'] as $element)
$condition .= $element.',';
$condition = substr($condition,0, -1);
$condition .= ")";
$requete = $bdd->prepare("SELECT DISTINCT code_article, designation, fournisseur, marque, unite_commande, prix_ht, quantite FROM essais
$condition ORDER BY prix_ht asc");
$requete->execute();
}
else {
$requete = $bdd->prepare("SELECT DISTINCT code_article, designation, fournisseur, marque, unite_commande, prix_ht, quantite FROM essais where code_article=-1");
$requete->execute();
}
$results = $requete->fetchAll(PDO::FETCH_ASSOC);
?>
<section class="main" >
<div class="container-fluid middle">
<nav class="navbar">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="./mercuriale.php"><i class='glyphicon glyphicon-list-alt'></i> Liste recherche</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="BC.php"><i class='glyphicon glyphicon-shopping-cart'></i> Bon de Commande</a></li>
<li class="dropdown">
<ul class="dropdown-menu">
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div class="col-xs-12 col-md-8 col-md-offset-2" id="resulat">
<table id="tarif" class="table table-striped table-hover" cellspacing="0" width="100%">
<thead>
<tr>
<th>Code Article</th>
<th>Désignation</th>
<th>Fournisseur</th>
<th>Marque</th>
<th>Unité de commande</th>
<th>Prix</th>
<th>Quantité</th>
<th class="hidden-print">Selection</th>
</tr>
</thead>
<tbody>
<?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>{$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>";
}
?>
</tbody>
</table>
</div>
</div>
</section>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.9/js/dataTables.bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$('#tarif').DataTable( {
language: {
"sProcessing": "Traitement ...",
"sSearch": "Rechercher :",
"sLengthMenu": "Afficher _MENU_ éléments",
"sInfo": "_START_ à _END_ / _TOTAL_ ",
"sInfoEmpty": "0 à 0 sur 0 éléments",
"sInfoFiltered": "(filtré de _MAX_ éléments au total)",
"sInfoPostFix": "",
"sLoadingRecords": "Chargement en cours...",
"sZeroRecords": "Aucun élément à afficher",
"sEmptyTable": "Aucune donnée disponible dans le tableau",
"oPaginate": {
"sFirst": "Premier",
"sPrevious": "Précédent",
"sNext": "Suivant",
"sLast": "Dernier"
},
"oAria": {
"sSortAscending": ": activer pour trier la colonne par ordre croissant",
"sSortDescending": ": activer pour trier la colonne par ordre décroissant"
}
},
"lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "Tout"] ]
});
});
</script>
<footer>
<p><img src="image/footer1.png"></p>
</footer>
</body>
</html>
voici le code modifié , je n'ai plus de message d'erreur , j'ai bien ma colonne "quantité" , le contenu de ma bd n'est pas affiché par contre .