Il y a 3 façons de le résoudre :
- Transférer le maximum d'informations vers le frontal
- Vérifier quand l'utilisateur soumet
- Vérification des données asynchrones, comme
Jquery
ajax
Transférer le maximum d'informations vers le front-end
Il suffit de placer vos informations maximales dans une zone cachée et d'utiliser javascript pour obtenir et vérifier cela.
function check(obj){
var max = obj.getAttribute("data-max");
if(parseInt(obj.value) > parseInt(max)){
alert("Amount out of max!");
}
}
<input name="amount" value="0" data-max="3" onkeyup="check(this);"/>
Mais cette méthode n'est pas recommandée et doit être évité, car les utilisateurs peuvent obtenir vos données de stockage en vérifiant le code source.
Vérifier quand l'utilisateur soumet
Vérifiez le montant avec la valeur maximale côté serveur, ce qui entraîne une mauvaise expérience utilisateur.
Vérification asynchrone des données
Ceci est principalement recommandé et utilisé, qui obtient des données de manière asynchrone. Vous pouvez essayer jquery
.
En supposant que votre langage côté serveur est php
, vous pouvez créer un fichier checkMax.php
:
<?
$amount = $_POST["amount"];
$item_id = $_POST["item_id "];
/* get your max data from database using item_id, then assign $max
...
*/
echo $amount > $max ? 1 : 0
Ensuite, vous pouvez vérifier le montant par jquery ajax.
<input name="amount" class="amount" data-id="1" value="0"/>
$(".amount").change(function(){
var amount = $(this).val();
var item_id = $(this).attr("data-id");
$.post("checkMax.php", {"amount": amount, "item_id": item_id}, function(data){
if(data == "1")alert("Amount out of Max!");
});
});