Sign in to follow this  
Followers 0

Les Quantités du caddie un peu mieux contrôlées

4 posts in this topic

Posted · Report post

Aller, encore un truc ... y'en a qui bossent ! B)

Dans l'affichage du détail du caddie, vous avez un champ "Quantité" que vous pouvez modifier à volonté, quitte à y saisir n'importe quoi car il n'est absolument pas contrôlé ! ... ça avait plus que tendance à m'énerver ! :(

• Rien n'empêche d'y saisir 550873 et là, bonjour la gestion des stocks !

• Rien n'empêche d'y saisir y2b4 et là, essayez de faire "METTRE à JOUR" pour voir ce qu'il se passe ! :)

Enfin bref, ce champ doit être contrôlé, déjà au minimum pour que ça soit un champ numérique. Le fichier à modifier est (.../achat/modeles/caddie.php), au niveau du champ <input ... name="quantite[]" ... > La ligne originale de PEEL-SHOPPING 2.9.3 est la suivante :

<input type="text" size="3" name="quantite[]" value="<?php echo $quantite?>" />

1°) Contrôle champ numérique:

Bien mieux qu'un n-ième message d'avertissement à postériori "Le champ tartempion doit être...", il faut contrôler le champ directement à la saisie en contrôlant les touches-clavier frappées (contrôle des valeurs décimales des touches). Pour ça, utiliser les events (onKeypress & onKeydown) event.keycode pour IE et event.which pour Netscape... (ils font exactement la même chose, mais ça aurait été trop simple d'avoir une même syntaxe pour les deux navigateurs ! :D )

Il faut dons rajouter dans le champ input :

onKeypress="if(event.keyCode < 48 || event.keyCode > 57) event.returnValue = false; if(event.which < 48 || event.which > 57) return false;"

... bon, déjà là, c'est pas mal : dès qu'on frappe autre chose qu'un chiffre, le caractère n'est pas tapé ! :D

2°) Empêcher la frappe de la touche SUPPRIME:

Mais un petit piège : rien n'empêche le fonctionnement de la touche "suppression" du clavier ... il y a danger, car le champ peut être vide et, là aussi, essayez de faire METTRE à JOUR pour voir ce qu'il se passe dans ce cas ! ... de manière radicale, on va donc empêcher la frappe de la touche SUPPR (code décimal 46)

Rajouter dans le champ input :

onKeydown="if(event.keyCode == 46) event.returnValue = false; if(event.which == 46) return false;"

... pour modifier le champ Quantité, il faut donc procéder uniquement par "sélection/frappe" et non plus par "suppression/frappe" et le champ ne peut ainsi plus être vide ! ... bien, on avance...

3°) Limiter le nbre de caractères du champ:

Ici classiquement, utiliser le paramètre maxlength="x" des champs input. De base, il n'a pas de limite dans (caddie.php) => la fixer à x=2 ou 3, ce qui permet déjà de commander ou 99 ou 999 articles d'un même type !! :o

Pour limite à 2, rajouter dans le champ input :

maxlength="2"

Ce qui nous donne le champ input global :

<input type="text" size="3" maxlength="2" onKeypress="if(event.keyCode < 48 || event.keyCode > 57) event.returnValue = false; if(event.which < 48 || event.which > 57) return false;" onKeydown="if(event.keyCode == 46) event.returnValue = false; if(event.which == 46) return false;" name="quantite[]" value="<?php echo $quantite?>" />

====================

Personnellement, je vais fixer maxlength=1 ... je ne veux pas que les clients puissent "facilement" commander plus de 9 fois un même article (moyenne 20Kg et 300€). Ma ligne input est donc la suivante:

<input type="text" size="1" maxlength="1" onKeypress="if(event.keyCode < 49 || event.keyCode > 57) event.returnValue = false; if(event.which < 49 || event.which > 57) return false;" onKeydown="if(event.keyCode == 46) event.returnValue = false; if(event.which == 46) return false;" name="quantite[]" value="<?php echo $quantite?>" />

j'élimine donc en plus la touche/valeur 0 (code décimal 48) pour que la quantité ne soit jamais nulle.

====================

• Voilà encore un truc utile, je pense ... on peut sûrement faire mieux, mais c'est déjà mieux que RIEN ! ... :D ... mais ça serait qd même bien qu'un minimum de contrôle sur ce champ Quantité (au moins numérique) soit fait dans PEEL-SHOPPING de base, non ?

Aller, bon developpement à tous,

@+

PS : Ces contrôles agissent directement sur le champ Quantité de la page (caddie.php), mais elles n'empêchent pas le client "volontaire" de commander PLUS d'objets que la limite imposée ! ... En effet, il peut toujours, sans que le résultat n'en soit affecté dans le caddie, cliquer autant de fois qu'il le veut sur "Ajouter au Caddie" sur un produit dans le catalogue; le résultat dans le caddie sera correct ... mais je ne pense pas ainsi qu'il lui vienne l'envie de cliquer 550873 fois ! :D

Share this post


: post
Share on other sites

Posted · Report post

Aller, encore un truc ... y'en a qui bossent ! :D

Dans l'affichage du détail du caddie, vous avez un champ "Quantité" que vous pouvez modifier à volonté, quitte à y saisir n'importe quoi car il n'est absolument pas contrôlé ! ... ça avait plus que tendance à m'énerver ! :(

• Rien n'empêche d'y saisir 550873 et là, bonjour la gestion des stocks !

• Rien n'empêche d'y saisir y2b4 et là, essayez de faire "METTRE à JOUR" pour voir ce qu'il se passe ! :)

Enfin bref, ce champ doit être contrôlé, déjà au minimum pour que ça soit un champ numérique. Le fichier à modifier est (.../achat/modeles/caddie.php), au niveau du champ <input ... name="quantite[]" ... > La ligne originale de PEEL-SHOPPING 2.9.3 est la suivante :

1°) Contrôle champ numérique:

Bien mieux qu'un n-ième message d'avertissement à postériori "Le champ tartempion doit être...", il faut contrôler le champ directement à la saisie en contrôlant les touches-clavier frappées (contrôle des valeurs décimales des touches). Pour ça, utiliser les events (onKeypress & onKeydown) event.keycode pour IE et event.which pour Netscape... (ils font exactement la même chose, mais ça aurait été trop simple d'avoir une même syntaxe pour les deux navigateurs ! :D )

Il faut dons rajouter dans le champ input :

... bon, déjà là, c'est pas mal : dès qu'on frappe autre chose qu'un chiffre, le caractère n'est pas tapé ! :D

2°) Empêcher la frappe de la touche SUPPRIME:

Mais un petit piège : rien n'empêche le fonctionnement de la touche "suppression" du clavier ... il y a danger, car le champ peut être vide et, là aussi, essayez de faire METTRE à JOUR pour voir ce qu'il se passe dans ce cas ! ... de manière radicale, on va donc empêcher la frappe de la touche SUPPR (code décimal 46)

Rajouter dans le champ input :

... pour modifier le champ Quantité, il faut donc procéder uniquement par "sélection/frappe" et non plus par "suppression/frappe" et le champ ne peut ainsi plus être vide ! ... bien, on avance...

3°) Limiter le nbre de caractères du champ:

Ici classiquement, utiliser le paramètre maxlength="x" des champs input. De base, il n'a pas de limite dans (caddie.php) => la fixer à x=2 ou 3, ce qui permet déjà de commander ou 99 ou 999 articles d'un même type !! :o

Pour limite à 2, rajouter dans le champ input :

Ce qui nous donne le champ input global :

====================

Personnellement, je vais fixer maxlength=1 ... je ne veux pas que les clients puissent "facilement" commander plus de 9 fois un même article (moyenne 20Kg et 300€). Ma ligne input est donc la suivante:

j'élimine donc en plus la touche/valeur 0 (code décimal 48) pour que la quantité ne soit jamais nulle.

====================

• Voilà encore un truc utile, je pense ... on peut sûrement faire mieux, mais c'est déjà mieux que RIEN ! ... :D ... mais ça serait qd même bien qu'un minimum de contrôle sur ce champ Quantité (au moins numérique) soit fait dans PEEL-SHOPPING de base, non ?

Aller, bon developpement à tous,

@+

PS : Ces contrôles agissent directement sur le champ Quantité de la page (caddie.php), mais elles n'empêchent pas le client "volontaire" de commander PLUS d'objets que la limite imposée ! ... En effet, il peut toujours, sans que le résultat n'en soit affecté dans le caddie, cliquer autant de fois qu'il le veut sur "Ajouter au Caddie" sur un produit dans le catalogue; le résultat dans le caddie sera correct ... mais je ne pense pas ainsi qu'il lui vienne l'envie de cliquer 550873 fois ! :D

super ce bout de code , mais ou faut il le mettre et dans quelle page ? B)

j'ai la version premium 2.8

philippe

Share this post


: post
Share on other sites

Posted · Report post

super ce bout de code , mais ou faut il le mettre et dans quelle page ? :(

j'ai la version premium 2.8

philippe

c'était inscrit : (.../achat/modeles/caddie.php)

mais je ne sais pas si c'est le meme shema de fonctionnement pour la premium;;;

Share this post


: post
Share on other sites

Posted · Report post

super ce bout de code , mais ou faut il le mettre et dans quelle page ? :D

j'ai la version premium 2.8

philippe

Arf ! :( ... je sais bien que j'ai été bavard, mais tout est dans le post ! ... et au début en plus !

• Pour la version PREMIUM, je ne peux pas être certain (... vu que j'l'ai pô :) ), mais la structure doit pas être si éloignée de celle, très bien foutue, de la version SHOPPING, nan ?

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

Twitter Advisto ecommerce

Facebook PEEL Shopping