在php / javascript中设置数据库的最大数字输入文本

时间:2015-01-20 05:27:40

标签: javascript php mysql

所以我有一个输入文字,用于确定购物车中商品的购买金额。每个项目具有不同的最大购买量,最大购买数量(最大)是从mysql数据库获得的。我想如果用户输入的项目数超过最大限制,则会出现警告。

购物图表和金额:

enter image description here

数据库示例:

id_item | item          | brands    | max
- - - - - - - - - - - - - - - - - - - - - - -
1       | Baskom Sedang | Lion Star |2
2       | Pinset Anatomi| Selako    |5
3       | Tromol        | Selako    |7

例如,如果我在" Baskom sedang"中键入3金额(超过最大限额),我希望警告出现。

我知道我应该包含我尝试的javascript /代码,但我对javascript一无所知,我对javascript不太满意。谢谢..

3 个答案:

答案 0 :(得分:1)

这可能是你想要的吗? Limit numerical values

只需要从数据库中获取值并相应地更改上限。

答案 1 :(得分:1)

很容易通过服务器端进行验证。

逻辑是这样的。

如果用户点击结帐或提交,则从数据库获取最大值,然后将其与用户输入进行比较,如果输入超过最大值则显示错误..:D

答案 2 :(得分:1)

有三种方法可以解决它:

  • 将最大限度信息传输到前端
  • 检查用户提交的时间
  • 异步数据检查,如Jquery ajax

将最大限度信息转移到前端

只需将您的最大信息放入某个隐藏区域,然后使用javascript获取并检查该信息。



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

但这种方式不推荐,应该避免,因为用户可以通过检查源代码来实现您的仓库数据。

检查用户提交时间

检查服务器端的最大值,这会导致用户体验不佳。

异步数据检查

这是最常推荐和使用的,它以异步方式获取数据。您可以尝试jquery

假设您的服务器端lang为php,您可以创建一个文件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

然后你可以通过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!");
  });
});