sql >> Base de Datos >  >> RDS >> Mysql

Establecer el número máximo de texto de entrada de la base de datos en php/javascript

Hay 3 formas de resolverlo:

  • Transferir información máxima al front-end
  • Comprobar cuándo envía el usuario
  • Comprobación de datos asincrónicos, como Jquery ajax

Transferir información máxima al front-end

Simplemente coloque su información máxima en un área oculta y use javascript para obtener y verificar eso.

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);"/>

Pero de esta manera no se recomienda y debe evitarse, ya que los usuarios pueden obtener sus datos de almacenamiento comprobando el código fuente.

Comprobar cuando el usuario envía

Verifique la cantidad con el valor máximo en el lado del servidor, lo que genera una experiencia de usuario deficiente.

Comprobación de datos asíncronos

Esto se recomienda y utiliza principalmente, que obtiene datos de forma asíncrona. Puedes probar jquery .

Asumiendo que su idioma del lado del servidor es php , puede crear un archivo 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

Luego puede verificar la cantidad con 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!");
  });
});