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');?>

这是获取自动建议列表并获取存储在表单隐藏字段中的选定条目的 id 的 JQuery 函数。

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

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

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

4

3 回答 3

0

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

于 2009-08-17T15:44:43.390 回答
0

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

于 2009-08-29T03:24:53.647 回答
-1

虽然与你的问题无关..

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

  • jQuery Auto 完成你
于 2009-08-13T09:04:28.013 回答