簡體   English   中英

PHP:使用動態生成的表單字段中的值更新數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM