如何将数组作为隐藏字段传递?

时间:2009-08-12 06:10:52

标签: cakephp autocomplete scriptaculous hidden-field

我正在使用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);
}

假设我选择多个条目,如何发送这些值? 我可以将数组作为隐藏字段,以便我可以拥有所选元素的数组并将该数组保存为隐藏字段吗?

3 个答案:

答案 0 :(得分:0)

只需为每个选定的ID创建一个新的隐藏输入字段,并确保每个人都有name="sharedUserId[]"。这不遵循CakePHP表单元素命名约定,但它将确保sharedUserId的POSTed值是一个数组。

答案 1 :(得分:0)

使用json序列化并在服务器中解析它。 PHP 5.2可以原生解析json。

答案 2 :(得分:-1)

虽然与你的问题无关。

http://docs.jquery.com/Plugins/Autocomplete

  • jQuery Auto完成你