我试图让这个问题绕过我的脑袋,但我很难做到:[
我在数据库中有3行,我在while()循环中回显。
用户可以更改search_terms
,然后将字段保存在mysql中,但我不知道如何执行此操作,因为有3行,所以我不能这样做;
<?php
if($_POST['update']) {
mysql_query("....");
}
?>
这是我的代码;
<?php
$box_query = mysql_query("SELECT * FROM `ta_boxs`");
while($box = mysql_fetch_array($box_query)) {
echo '<div class="box_content">';
echo '<div class="box">'."\n";
echo '<span class="box_top"></span>';
echo '<div class="box_header"><input type="text" id="title" name="title" class="title-input" value="'.$box['title'].'" /></div>';
echo '<span class="sept"></span>';
echo '<div class="admin-back">';
echo '<form id="form-'.$box['id'].'" name="form-'.$box['id'].'" method="post" action="">';
echo '<p class="sub"><span>Includes:</span> Search for these terms in Twitter Feeds.</p>';
echo '<p class="sub-small">Please enter one word per field or click "add word".</p>';
echo '<p><input type="text" id="search_term_1" name="search_term_1" value="'.$box['search_term_1'].'" class="term-input" />';
echo '<p><input type="text" id="search_term_2" name="search_term_2" value="'.$box['search_term_2'].'" class="term-input" />';
echo '<p><input type="text" id="search_term_3" name="search_term_3" value="'.$box['search_term_3'].'" class="term-input" />';
echo '<span class="hr"></span>';
echo '<p class="sub"><span>Excludes:</span> Ignore these terms in Twitter Feeds.</p>';
echo '<p class="sub-small">Please enter one word per field or click "add word".</p>';
echo '<p><input type="text" id="search_term_1" name="search_term_1" value="'.$box['exc_search_term_1'].'" class="term-input" />';
echo '<p><input type="text" id="search_term_2" name="search_term_2" value="'.$box['exc_search_term_2'].'" class="term-input" />';
echo '<p><input type="text" id="search_term_3" name="search_term_3" value="'.$box['exc_search_term_3'].'" class="term-input" />';
echo '<input type="hidden" id="update" name="update" value="yes" />'
echo '<p><input type="submit" id="update_'.$box['id'].'" name="update_'.$box['id'].'" value="Update" /></p>';
echo '</form>';
echo '</div>';
echo '</div>'."\n";
echo '<span class="box_bottom"></span>';
echo '</div>';
}
?>
可能有1个输出,或100,但我需要一种方法来保存它们,onsubmit。有什么想法吗?
答案 0 :(得分:2)
由于您输出的是不同<form>
的每个方框,因此您只需返回一个方框。
如果你改变:
<input type="hidden" id="update" name="update" value="yes" />
到
<input type="hidden" id="update" name="update" value="' . $box['id'] . '" />
然后你就能看到哪一个被贴回来了。
答案 1 :(得分:2)
我不认为您的方法会起作用,因为您正在生成多个表单,因此PHP只会获得一个提交的表单,并且您将无法保存页面上的所有更改。
您可能需要考虑使用一个表单并将输入命名为数组(请参阅http://php.net/manual/en/faq.html.php#faq.html.arrays)。
e.g。 (简化的)
<form method="post">
<?php while($box = mysql_fetch_array($box_query)): ?>
<!-- div box thing -->
<input name="box[<?php echo $box['id'];?>][search_term_1]" value="<?php echo $box['search_term_1']; ?>">
<input name="box[<?php echo $box['id'];?>][search_term_2]" value="<?php echo $box['search_term_2']; ?>">
<input name="box[<?php echo $box['id'];?>][search_term_3]" value="<?php echo $box['search_term_3']; ?>">
<input name="box[<?php echo $box['id'];?>][exc_search_term_1]" value="<?php echo $box['exc_search_term_1']; ?>">
<input name="box[<?php echo $box['id'];?>][exc_search_term_2]" value="<?php echo $box['exc_search_term_2']; ?>">
<input name="box[<?php echo $box['id'];?>][exc_search_term_3]" value="<?php echo $box['exc_search_term_3']; ?>">
<!-- end div box thing -->
<?php endwhile; ?>
</form>
如果您在提交该表单后print_r($_POST)
,您应该会看到循环/处理相当容易。
答案 2 :(得分:0)
制作一个表格,
并以此形式设置所有字段
提交一个按钮,
将输入元素的唯一ID赋予每一行,就像使用框ID
一样