[英]How to store dynamically generated form different fields values back to database php mysql?
[英]Php: updating database with values from dynamically generated form fields
如何保存以下表格?
<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:
<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');
問題在於每個表單將具有不同數量的動態加載的文本區域和不同的$ id。 我無法想象要保存此表格很熱。
謝謝。
您可能需要做的就是在表單字段名稱中使用數組表示法,如下所示:
<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
}
現在,您可能要考慮使用REPLACE
語法,而不是一堆單獨的SQL查詢,以便您可以通過單個查詢插入/更新數據。
在創建textarea的“ while”中,保存帶有這些textarea的ID的數組。
然后在需要時重新跟蹤數組以使用id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.