如何在表单中生成动态隐藏值

时间:2011-05-19 14:56:46

标签: php javascript jquery

我有一个使用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>

问题是除非我刷新页面我得到相同的隐藏值。如果不刷新页面,我该怎么做才能获得不同的值。

6 个答案:

答案 0 :(得分:1)

与日期?

Date.getTime();

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果您使用ajax添加,请在ajax调用的返回中设置它

答案 3 :(得分:0)

如果值可以是随机的,你可以使用javascript时间调用,如getTime(),它将获得自1972年以来的毫秒数。你不可能获得重复的ID,但你可以附加一个随机数可以肯定的是。

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

答案 4 :(得分:0)

我认为你可能需要使用jQuery load()函数,并有一个PHP页面为你生成md5()id:

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

jQuery将放在Add按钮旁边。

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

<?php

echo md5(uniqid());

?>

答案 5 :(得分:0)