【问题标题】:how to store multiple dynamically generated textbox values into an array in codeigniter?如何将多个动态生成的文本框值存储到codeigniter中的数组中?
【发布时间】:2012-10-15 09:45:31
【问题描述】:

请帮忙,

我有一个动态生成文本框的表单。例如:

        on |button| click
           |textbox 1|
           |textbox 2|
           |textbox 3|
           |textbox 4|
           .
           .
           .
           |textbox n|

           |submit|  

文本框的 id 保持自动递增,而名称保持不变。 我需要的是,当我提交表单时,生成的文本框的值必须存储在一个数组中,然后将该数组存储在数据库中。如何使用 codeigniter 将动态生成的文本框值存储到单个数组中?我是 Codeigniter 的新手。

【问题讨论】:

    标签: php arrays codeigniter dynamic textbox


    【解决方案1】:

    查看文件

    <?php
         for($i=1;$i<10;$i++) { ?>
             <textarea name="texta[<?php echo $i;?>]"></textarea>
         <?php } ?>
    

    捕捉表单的控制器

    $array_of_textboxes = $this->input->post('texta');
    

    那么你的文本框值在数组中

    如果你的 html 是,你可以有一个没有键的数组

    <textarea name="texta[]"></textarea>
    

    【讨论】:

    • 实际上在视图文件中我正在通过 javascript 创建文本框。考虑创建 3 或 4 个文本框。那该怎么办?
    • 没关系,如果你用jQuery只要$('.mytextareas').attr('name', 'texta[' + myid + ']');
    • 对不起,选择器当然应该指向你当前的文本区域
    【解决方案2】:

    您也应该增加名称。然后接收 POST 的脚本会生成一个看起来像你想要的东西的数组。然后你可以使用“serialzie($array)”来创建数组的字符串版本。这应该在数据库中存储。然后你可以使用“unserialze($string)”来取回你的数组。

    【讨论】:

      【解决方案3】:

      我会为 jQuery 使用 ajaxSubmit 插件:Link
      它将所有表单元素发送到表单的操作 url。 $_POST 数组结构为:array("element_name"=>element_data).
      如果您像您一样有多个文本框,并且将它们命名为数组:
      &lt;input type='text' name='textbox[]'&gt; 插件会将它们以数组的形式发送到帖子内部。第一个文本框将是$_POST['textbox'][0]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多