Panier en checkbox

Dave17000 - 8 sept. 2012 à 15:47
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 - 10 sept. 2012 à 22:07
Bonjour à tous,
Je cherche le moyen de créer une forme de panier ou l'ajoute/suppression d'article se fait à partir de checkbox...
En fait, j'ai créés un page qui affiche l'ensemble de photos se trouvant dans un dossier et sous chaque photo se trouve une case à cochée suivit du nom de la photo.
Le but est que le "client" coche divers cases correspondants aux photos qu'il à choisi, ces photos se retrouve alors dans une liste qu'il valide à la fin de son choix.
Un fois validé, l'admin reçois un mail avec la liste des photos choisis et peut alors les faire développer...
J’avoue que je ne sais pas comment faire.
Quelqu'un aurait il une idée?
Merci d'avance!

5 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
9 sept. 2012 à 11:27
Tes photos doivent être à l'intérieur d'une balise <form> et chaque case doit porter un nom avec l'ID de la photo.
Lors du traitement, il te suffit d'énumérer le contenu de $_POST et de remplir une string avec ça, en vérifiant
d'abord que les photos sélectionnées appartiennent bien à l'utilisateur qui envoie le formulaire.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
9 sept. 2012 à 16:38
bonjour

je ferai une fonction,class qui liste le dit répertoire et comme le propose ghuysmans99
tu écris les checkbox à la volée dans un form et si il valide le form toutes les checkbox à 'on' iront avec leur value c.a.d. les noms des photos dans une variable de session,
si tu veux que le client fasse plus de choix dans d'autres rubriques photos ...

puis tu peux alors si il commande
lister avec des foreach (tableaux)
et envoyé le mail avec mail()
vider toutes les variables sessions
comme un panier de commande classique

++

Bonne programmation !
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
9 sept. 2012 à 21:18
Un peu brutal de remplir $_SESSION avec le contenu du panier...
Bien plus propre de stocker ça dans une seule variable de session
(et d'utiliser explode si on veut manipuler chaque élément)

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
Alors, merci à tous, mais en fait, je vais vous donner mon code php, ce qui me permettra d'avoir votre avis, d'une pars, et vous donner une vision claire de la ou j'en suis... sachant qu'il manque des fichiers JS (pour les cufon, entre autre), mais ça n’empêche pas de lire le code...
Donc la question est, a partir de la, comment adapter le code pour ajouter un panier, car, tel qu'il est, il fonctionne exactement comme je veux, mais, sans le panier...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml">
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Liste des templates</title>
<link rel="shortcut icon" href="favicon.ico" />
<link href="css/thumbs.css" rel="stylesheet" type="text/css" /> 
<link rel="stylesheet" media="screen,projection" href="css/ui.totop.css" />   
<!-- No right clic -->
    <script type="text/javascript">
        document.oncontextmenu = new Function("return false");
    </script>
<!-- End No right clic -->     
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

<script src="js/custom-form-elements.js" type="text/javascript"></script> 

<!-- Cufon -->
<script src="js/cufon-yui.js" type="text/javascript"></script>
<script src="fonts/DymoFontInvers_500.font.js" type="text/javascript"></script>
<script src="fonts/League_Gothic_400.font.js" type="text/javascript"></script>
<script src="fonts/Talking_to_the_Moon_400.font.js" type="text/javascript"></script>
  
<script type="text/javascript">
          Cufon.replace('h1', { fontFamily: 'DymoFontInvers'});
          Cufon.replace('h2', { fontFamily: 'League Gothic', textShadow:'1px 1px 2px #CBD9E4'});
          Cufon.replace('h3', { fontFamily: 'Talking to the Moon'});
</script> 
<!-- End Cufon -->  
</head>

     
<!-- Topbar -->




[# electronics
ideas
]



    <?php
    $files = glob("images/*.jpg");
    $compteur = count($files);
    echo "Il y a actuellement $compteur";
    if ($compteur > 1) { echo " thèmes disponibles
"; }
    else { echo " thème disponible</H2>"; }
    ?>

    

Il y a actuellement  0 
thème dans le panier



<!-- End Topbar -->

<!-- Thumbs -->



<?php
$dir  = "images";
$dossier = opendir($dir);
$myfiles = array();
while($fichier = readdir($dossier)){
$berk = array('.', '..');
if(!in_array($fichier,$berk))
$myfiles[] = $fichier;
}
sort($myfiles);
foreach($myfiles as $mfile){
$lien=$dir.'/'.$mfile;
print '
';
if(file_exists($lien)){
print '

';
print '
'.substr($mfile,0,-4).'

';
}
print '
';
}
?>  


<!-- End Thumbs -->

<!-- Top page -->	
  <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script src="js/easing.js" type="text/javascript"></script>
<script src="js/jquery.ui.totop.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {			
$().UItoTop({ easingType: 'easeOutQuart' });    			
});
</script>
  <!-- End Top page -->

</html>

A noter enfin que j'ai prévu un emplacement pour un compteur qui permet d'inscrire le nombre de photos sélectionnées. Pour le moment c'est purement décoratif, forcement...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
10 sept. 2012 à 22:07
bonsoir

j'ai bricolé une application en php
ça peu t'aider c'est un panier
il faut un répertoire ./images
avec des photos

index.php
<?php
session_start();
/*lister le panier*/
/*lister le repertoire*/
/******************************************************************************/
function listercerepertoirer($dir){

static $out =  null;
static $files;

$files = glob($dir.'*.jpg');

  $i=0;$out=null;
  
  foreach($files as $fichier){
    
    if(file_exists($fichier)){
          
    $fichier = str_replace($dir,'',$fichier);
            
    $out .= ' '.$fichier.' 
';
    $out . = '
';
    $fichier = substr($fichier,0,-4);
    $fichier = urlencode($fichier);
    
    $c='';$dellien='';    
    
    if(isset($_SESSION[$fichier])){
    $c='checked';                                              
    $dellien='[?del='.$fichier.'&num='.$i.' Supprimer du panier]<hr>';
    }else{
    }; 
    
    $out .= '<form method="post" action="">';
    $out .= '';
    $out .= '';
  	$out .= '';
    $out .= '</form>';
    $out .= $dellien;
    
    /* tu peux le supprimer 
    $out .= '<form method="post" action="">';
    $out .= '';
    $out .= '';
    $out .= '</form><hr>';
    /* */
       
    $i++;
    
    }else{
    }
  
  }

return $out;

}
/******************************************************************************/
function gestiondupanier(){
   
static $gestion=null;
      
   if(isset($_SESSION['achats']) && !empty($_SESSION['achats'])){
   
   $gestion  = '
PANIER : '; 
   
   $gestion .= count($_SESSION['achats']).' articles dans votre panier

   [ [?vide=1 Vider mon panier] ]
';
      
   $i=0;
   
   foreach($_SESSION['achats'] as $k => $item ){
       
   $gestion .= urldecode($item).' [?del='.$item.'&num='.$i.' Supprimer du panier]
';
   
   $i++;
   
   $item='';
   
   }
   
   $gestion .=  '
';
   
   return  $gestion; 
   
   }else {
   
   }                 

}                   
/******************************************************************************/
/*creation*/
if(isset($_POST['article'])){
//$_POST['article']=urlencode($_POST['article']);
$_SESSION[$_POST['article']]=$_POST['article'];
$_SESSION['achats'][$_POST['article']]=$_POST['article'];
header('Location: index.php');exit;
}else{
}

/*destruction*/
if(isset($_POST['effacer'])){
$_POST['effacer']=urlencode($_POST['effacer']);
unset($_SESSION['achats'][$_POST['effacer']]);
unset($_SESSION[$_POST['effacer']]);
header('Location: index.php');exit;
}else{
}


/*creation*/
if(isset($_GET['article'],$_GET['num'])){
$_GET['article']=urlencode($_GET['article']);
$_SESSION[$_GET['article']]=$_GET['article'];
$_SESSION['achats'][$_GET['article']]=$_GET['article'];
header('Location: index.php');exit;
}else{
}

/*destruction*/
if(isset($_GET['del'],$_GET['num'])){
$_GET['del']=urlencode($_GET['del']);
unset($_SESSION['achats'][$_GET['del']]);
unset($_SESSION[$_GET['del']]);
header('Location: index.php');exit;
}else{
}

if(isset($_GET['vide']) && (int)$_GET['vide']===1){
unset($_SESSION['achats'],$_GET['vide']);
session_destroy();
session_unset();
header('Location: index.php');exit;
}else{
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  
<script language="javascript">
function mod(v,n){
//document.location.replace("?article="+v);
document.location.replace("?article="+v+"&num="+n);
//document.write("?article="+v+"&num="+n);
}
</script>

  </head>
  
  
   <?php 
   
   /*variables au depart*/
   
   $gest = gestiondupanier();      
   echo isset($gest) ? $gest : '';
   $dr='./images/';
   echo listercerepertoirer($dr);
   
   //echo '';
   //print_r($_SESSION);
   //echo '';
   /*
   //$_SESSION['achats'] /*le panier recuperable dans une autre page et transferable
   //faire un foreach et urldecode pour decoder les variables   
   //avec mail() ... 
   */
   ?>
  
  
</html>


++
Bonne programmation !
0
Rejoignez-nous