Mysql
 sql >> Base de données >  >> RDS >> Mysql

Définir le nombre maximum de texte d'entrée à partir de la base de données en php/javascript

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!");
  });
});