如何保存以下表格?
<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查询将加载数据并动态创建textareas:
<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和不同的$ id。保存这种形式我无法想象。
感谢。
答案 0 :(得分: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
}
现在,您可能需要考虑使用REPLACE
语法,而不是一堆单独的SQL查询,以便您可以使用单个查询插入/更新数据。
答案 1 :(得分:0)
保存一个具有这些textarea的id的数组。
然后在需要时回溯数组以使用id