【问题标题】:codeigniter multiple field submit with a single form and buttoncodeigniter 使用单个表单和按钮提交多个字段
【发布时间】:2011-05-01 05:14:10
【问题描述】:

我有多个表单,它们将使用循环生成 4 次相同的字段。我很困惑如何使用循环在同一个数据库表中提交这些字段。 我的表单如下所示:

<form action="http://localhost/pages/edit" method="post" name="form">
<p><label for='short'>Name</label><br/><input type="text" name="title[]" value=""  /></p>
    <p><label for='short'>Url</label><br/><input type="text" name="url[]" value="ddd-df-adsfasd--asdf"  /></p>
    <p><label for='short'>Short Description</label><br/><textarea name="shortdesc[]" cols="90" rows="12" id="short" size="40" ></textarea></p>
    <p><label for='long'>Long Description</label><br/><textarea name="longdesc[]" cols="40" rows="5" id="long" ></textarea></p> 
        <input type="hidden" name="category_id[]" value="124" />
<input type="submit" name="submit" value="Update"  />
</form>

此表单内容将生成 4 次。我很困惑如何将这些值带到控制器并将其添加到数据库中。

【问题讨论】:

    标签: codeigniter multiple-forms


    【解决方案1】:

    试试这个:

    $fields = array('title', 'url', 'shortdesc', 'longdesc', 'category_id');
    
    foreach ($fields as $field)
    {
        foreach ($_POST[$field] as $key => $value)
        {
            $data[$key][$field] = $value;
        }
    }
    
    foreach ($data as $values)
    {
        $this->db->insert('table_name', $values);
    }
    

    肯定有更简单的方法可以做到这一点,但这是您使用的表单字段名称最灵活的方法,并且不关心您发布了多少不同的项目。您确实说过您是在插入而不是更新,这假设您的表列名称与您的表单字段名称匹配。

    可以只循环遍历 $_POST 数组,但这将允许您轻松发布其他字段,而无需将它们的值添加到数组中以进行插入。

    当您说i have multiple form 时,我有点不清楚:您需要确保所有内容都在一个&lt;form&gt; 标记中。

    【讨论】:

      猜你喜欢
      • 2021-08-11
      • 2012-01-23
      • 1970-01-01
      • 2017-05-03
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      相关资源
      最近更新 更多