0

如何保存以下表格?

<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');

问题是每个表单将有不同数量的动态加载的文本区域和不同的 $id。我无法想象热保存这个表格。

谢谢。

4

2 回答 2

3

您可能需要做的是查看在表单字段名称中使用数组表示法,如下所示:

<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以便您可以使用单个查询插入/更新数据。

于 2013-04-29T20:01:08.627 回答
0

在创建 textarea 时的“while”中,使用这些 textarea 的 id 保存一个数组。

然后在需要时回溯数组以使用 id

于 2013-04-29T19:58:44.270 回答