2011-05-19 69 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()); 

?> 
相關問題