2012-02-03 100 views
3

我試圖使用動態創建的表單來編輯頁面上的內容。我從數據庫表(在這種情況下是圖像標題)中檢索信息,並將其顯示在準備編輯的文本區域中,並將其保存回數據庫。從動態生成的表格中檢索數據

這似乎做組織和顯示形式的工作:

echo"<form action='edit.php' method='post'>"; 
for ($limit;$limit<=$all_values;$limit++) 
    { 
     echo "<textarea cols='15' rows='3' name='caption' value='$caption_arr[$limit]'> 
      $caption_arr[$limit]</textarea><br> 
     } 
     echo "<br><input type='submit' value='Edit' name='pictureEedit'></form>"; 

可是,我從這裏出了問題。當我在edit.php中輸入:

$caption=$_POST['caption']; 
echo $caption; 

而且我只從最後一個字段獲得標題。當我在表格中添加複選框時,它一切正常,只要我檢查1,但如果我檢查了2或更多,它只會給我最後一個值。

我也試過這樣:

$caption[$x]=$_POST['caption']; 
foreach ($caption as $key => $value) {echo $key.$value.'<br>';} 

,但得到了同樣的結果。

回答

3

在您的形式

name='caption' 

必須

name='caption[]' 

而且以後你可以這樣做:

foreach ($_POST['caption'] as $key => $value) {echo $key.'=>'.$value.'<br>';} 
+0

夠簡單,謝謝。 – spacitron 2012-02-03 02:08:33

+0

出於好奇。有沒有辦法我也可以更新已保存的字段?假設我在圖庫中有1000張圖片和標題,並且僅使用了編輯1標題,讓腳本更新所有標題是否有意義?或者是否有辦法讓它只能編輯已編輯的文件? – spacitron 2012-02-03 02:12:14

+0

然後你必須找出哪些真的改變了。因此,您必須閱讀表單中顯示的所有項目,並在提交時檢查$ _POST值。 – djot 2012-02-03 02:18:31

0

你不能爲所有字段使用相同的名稱。你必須製作它們。試試這個

name='caption[]'