sql >> Databáze >  >> RDS >> Mysql

Nastavte maximální počet vstupních textů z databáze v php/javascriptu

Existují 3 způsoby, jak to vyřešit:

  • Přeneste maximum informací do rozhraní front-end
  • Zkontrolujte, kdy uživatel odešle
  • Asynchronní kontrola dat, jako je Jquery ajax

Přeneste maximální informace do rozhraní front-end

Stačí umístit vaše maximální informace do nějaké skryté oblasti a pomocí javascriptu je získat a zkontrolovat.

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

Tento způsob se ale nedoporučuje a měli byste se jim vyhnout, protože uživatelé mohou získat vaše data úložiště kontrolou zdrojového kódu.

Zkontrolujte, kdy uživatel odešle

Zkontrolujte částku s maximální hodnotou na straně serveru, což vede ke špatné uživatelské zkušenosti.

Asynchronní kontrola dat

To se většinou doporučuje a používá, které získávají data asynchronně. Můžete zkusit jquery .

Za předpokladu, že váš jazyk na straně serveru je php , můžete vytvořit soubor 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

Poté můžete zkontrolovat částku pomocí 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. Chci použít příkaz CASE k aktualizaci některých záznamů na serveru SQL 2005

  2. Oracle Spool - Chybí kompletní informace

  3. Vrátí pouze řádky, jejichž maximální hodnota je menší než zadaná

  4. Neměla by mysql_real_escape_string() ponechat lomítka v databázi?