2013-04-29 102 views
0

如何保存以下表單?Php:使用動態生成的表單域中的值更新數據庫

<form name="myform"> 
<input type="text" name="title" value="title" /> 

$result = mysql_query("SELECT id, text from details where parent='$parent' 
order by id asc") or die('Error'); 
while(list($id,$ftext) = mysql_fetch_row($result)) { 
?> 
<textarea name="formfield<?php echo $id;?>" id="<?php echo $id;?>"> 
<?php echo $ftext;?> 
</textarea> 
<?php 
} 
</form> 

正如你可以在上面看到,MySQL的查詢將加載數據和動態創建文字區域:

<textarea name="formfield34" id="34">text</textarea> 
<textarea name="formfield56" id="56">more text</textarea>   
<textarea name="formfield78" id="78">anothet text</textarea> 

我需要這樣來更新數據庫:

$result = mysql_query("UPDATE details SET text='$formfield34' WHERE id ='34'") or die('Error'); 
$result = mysql_query("UPDATE details SET text='$formfield56' WHERE id ='56'") or die('Error'); 
$result = mysql_query("UPDATE details SET text='$formfield78' WHERE id ='78'") or die('Error'); 

的問題是,每個表單將有不同數量的動態加載的textareas和不同的$ ids。我無法想象這個表格很酷。

謝謝。

+0

您可以使用'foreach'來遍歷$ _POST找到名爲'formfieldxx'的字段,並使用一些文本處理將'formfieldxx'的內容寫入數據庫,其中'id = xx'。 – andrewsi 2013-04-29 19:55:14

回答

3

什麼你可能需要做的是看使用數組符號在你的表單字段的名字,像這樣使用IDS:

<textarea name="formfield[34]" id="34">text</textarea> 
<textarea name="formfield[56]" id="56">more text</textarea>   
<textarea name="formfield[78]" id="78">anothet text</textarea> 

PHP會自動在$_POST['formfield']中建立一個數組。你可以訪問所有這些數據。這可以很容易地遍歷這個數組併爲你的更新生成SQL。

foreach($_POST['formfield'] as $key => $value) { 
    // write SQL here 
} 

現在,而不是一串單獨的SQL查詢的,你可能要考慮使用REPLACE語法,這樣您就可以插入/使用單個查詢更新數據。

0

在「while」中創建textarea時保存一個帶有這些textarea的id的數組。

然後折回數組當你需要它

相關問題