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

Indstil maksimalt antal input tekst fra databasen i php/javascript

Der er 3 måder at løse det på:

  • Overfør maks. oplysninger til front-end
  • Tjek, når brugeren sender
  • Asynkron datakontrol, såsom Jquery ajax

Overfør maks. oplysninger til front-end

Bare placerede dine maksimale oplysninger i et skjult område, og brug javascript til at få og tjekke det.

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

Men denne måde anbefales ikke og bør undgås, da brugere kan opnå dine lagerdata ved at tjekke kildekoden.

Tjek, når brugeren indsender

Tjek beløbet med maks. værdi på serversiden, hvilket fører til dårlig brugeroplevelse.

Asynkron datakontrol

Dette er for det meste anbefalet og brugt, som får data asynkront. Du kan prøve jquery .

Forudsat at dit sprog på serversiden er php , kan du lave en fil 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

Så kan du tjekke beløbet ved at 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!");
  });
});
 


  1. kolonnedato kan ikke automatisk castes til tidsstempel med tidszone django/postgres

  2. Hvordan kan jeg logge UPDATE-sætninger ved hjælp af Oracle-driverens logning på en rimelig måde?

  3. Sådan sletter du data fra Elastisearch

  4. MySQL datoformat