2011-05-19 73 views
0

我有一个使用jQuery和PHP构建的购物车。我需要为item id生成隐藏值。每次点击添加时,该值都必须不同。我怎样才能生成一个形式的动态隐藏值

我不知道如何创建动态值,每次点击都会有所不同。

此刻我用php创建了下面的代码。

  <form method="post" action="" class="jcart"> 
      <? $unique = md5(uniqid()); ?> 
       <input type="hidden" name="my-item-id" value="<?=$unique;?>" /> 
       <input type="submit" name="my-add-button" value="add to cart" class="button" /> 

      </form> 

问题是除非我刷新页面我得到相同的隐藏值。如何在不刷新页面的情况下获得不同的值?

+0

我看你是在提交表格,并单击Add按钮时重新加载页面。这不是解决问题吗? – crazyphoton 2011-05-19 15:45:54

回答

1

与日期?

Date.getTime();

0

您可以将一个简单的整数存储在cookie中,并将其用作增量计数器的基础来生成该“唯一”值。只要您注意不要同时运行多个“添加”脚本,并确保您的cookie更新代码是防弹的,它应该考虑到唯一性问题。

0

如果你正在使用AJAX添加,将其设置在Ajax调用

0

的回报。如果该值可以是随机的,您也可以使用JavaScript时调用像的getTime(),将获得自毫秒数。 1972年。你不太可能会得到一个重复的ID,但你可以追加一个随机数来确定。

最好的方法是使用Ajax调用(通过jQuery)到您的服务器,并从服务器获取ID。

0

我想你可能需要使用jQuery的load()函数,并有一个生成的MD5()ID为您这样的PHP页面:

<script>$('input[type=hidden]').prev().load('ajax/uniqueId.php');</script> 

jQuery的将被放在旁边的添加按钮。

和你的PHP页面看起来像这样...

<?php 

echo md5(uniqid()); 

?> 
相关问题