我正在使用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 :(得分:0)
只需为每个选定的ID创建一个新的隐藏输入字段,并确保每个人都有name="sharedUserId[]"
。这不遵循CakePHP表单元素命名约定,但它将确保sharedUserId
的POSTed值是一个数组。
答案 1 :(得分:0)
使用json序列化并在服务器中解析它。 PHP 5.2可以原生解析json。
答案 2 :(得分:-1)