2011-05-01 97 views
1

我有多個形式,將與循環相同的字段生成4次。我很困惑如何在同一個數據庫表中使用循環提交這些字段。 我的形式如下:codeigniter多個字段提交一個單一的表單和按鈕

<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倍。我很困惑如何將這些值傳遞給控制器​​並將其添加到數據庫中。

回答

2

這給一試:

$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,我有點不清楚:你需要確保它全部在一個<form>標籤。

+0

我現在已經對問題進行了更正。有效。謝謝。 – kamal 2011-05-01 06:59:54

相關問題