2009-08-12 34 views
0

我正在使用scriptaculous.js框架的Ajax.autocompleter方法實現自動完成框。如何將數組作爲隱藏字段傳遞?

這是自動完成框和填充自動建議條目的div。

<?php echo $form->create('Share', array('url' => '/forms/share')); ?> 
    <label for="shareWith">Share Form with</label> 
    <input type="text" id="autocomplete" name="autocomplete_parameter"/> 
    <div id="autocomplete_choices" class="autocomplete"></div> 
    <input type="hidden" id="sharedUserId" name="sharedUserId"/> 
<?php echo $form->end('Share');?> 

這是jQuery函數得到自動提示的列表,並獲得存儲在表單的隱藏字段所選條目的ID。

new Ajax.Autocompleter("autocomplete", "autocomplete_choices", 
         "http://localhost/FormBuilder/forms/autoComplete", 
          { 
          tokens: ',', 
          afterUpdateElement : getSelectedId 
          } 
         ); 

function getSelectedId(text, li) { 
     $("#sharedUserId").val(li.id); 
} 

假設如果我選擇多個條目,如何發送這些值? 我可以將數組作爲隱藏字段,以便我可以有選定元素的數組並將該數組保存爲隱藏字段?

+0

與您的問題無關,但:您在同一頁面上同時使用了scriptaculous + prototype和jQuery?爲什麼在同一個網站上使用兩個JS框架?一個是不夠的?前面的 – 2009-08-13 06:57:11

+0

已經使用jquery進行了編碼..並且爲了實現自動完成功能,需要使用scriptaculous框架 – Angeline 2009-08-13 07:20:36

回答

0

簡單地爲每一個選擇的ID創建一個新的隱藏的輸入字段,並確保對每個人都有name="sharedUserId[]"。這不符合CakePHP表單元素的命名約定,但它會確保POST的值爲sharedUserId是一個數組。

0

用json序列化並在服務器端解析它。 PHP 5.2可以本地解析json。

相關問題