sql >> Databasteknik >  >> RDS >> Mysql

Ställ in maximalt antal inmatad text från databasen i php/javascript

Det finns tre sätt att lösa det:

  • Överför maxinformation till front-end
  • Kontrollera när användaren skickar in
  • Asynkron datakontroll, som Jquery ajax

Överför maxinformation till front-end

Placera bara din maxinformation i ett dolt område och använd javascript för att få och kontrollera 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 det här sättet är rekommenderas inte och bör undvikas, eftersom användare kan få din lagringsdata genom att kontrollera källkoden.

Kontrollera när användaren skickar in

Kontrollera beloppet med maxvärde på serversidan, vilket leder till dålig användarupplevelse.

Asynkron datakontroll

Detta rekommenderas och används mest, som får data asynkront. Du kan prova jquery .

Förutsatt att ditt språk på serversidan är php , kan du skapa 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

Sedan kan du kontrollera beloppet med 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. Grundläggande revisionstabell för Oracle Trigger

  2. Uppdaterar specifik rad i SQLAlchemy

  3. Hur ansluter man till en Oracle-databas med cx_Oracle med tjänstens namn och inloggning?

  4. Hur man konverterar sekund till tid med MYSQL