Mysql
 sql >> Database >  >> RDS >> Mysql

Imposta il numero massimo di testo di input dal database in php/javascript

Ci sono 3 modi per risolverlo:

  • Trasferisci il numero massimo di informazioni al front-end
  • Controlla quando l'utente invia
  • Controllo dati asincrono, come Jquery ajax

Trasferisci il numero massimo di informazioni al front-end

Basta inserire le tue informazioni massime in un'area nascosta e utilizzare javascript per ottenerle e verificarle.

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

Ma in questo modo non è consigliato e dovrebbe essere evitato, poiché gli utenti possono ottenere i tuoi dati di archiviazione controllando il codice sorgente.

Controlla quando l'utente invia

Controlla l'importo con il valore massimo lato server, il che porta a un'esperienza utente scadente.

Controllo dati asincrono

Questo è per lo più consigliato e utilizzato, che ottiene i dati in modo asincrono. Puoi provare jquery .

Supponendo che la tua lingua lato server sia php , puoi creare un file 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

Quindi puoi controllare l'importo tramite 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!");
  });
});