【问题标题】:How to pass an array as a hidden field?如何将数组作为隐藏字段传递?
【发布时间】:2009-08-12 06:10:51
【问题描述】:

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

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

【问题讨论】:

  • 与您的问题无关,但是:您在同一页面上同时使用 scriptaculous+prototype 和 jQuery 吗?为什么在同一个网站上使用两个 JS 框架?一个还不够吗?
  • 之前使用 jquery 编码.. 为了实现自动完成功能,需要脚本框架

标签: cakephp autocomplete scriptaculous hidden-field


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      与你的问题无关..

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

      • jQuery 自动完成你

      【讨论】:

        猜你喜欢
        • 2017-02-25
        • 2020-11-16
        • 1970-01-01
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多