我正在使用表单编辑评论并使用隐藏的输入字段来传递值
表格是这样的。
<input type="text" name="name" value="<?php echo $name; ?>" class="input" />
<input type="hidden" name="com_name" value="<?php echo $name;?>"/>
<input type="text" name="email" value="<?php echo $email; ?>" class="input" />
<input type="hidden" name="com_email" value="<?php echo $email;?>"/>
<input type="text" name="phone" value="<?php echo $phone; ?>" class="input" />
<input type="hidden" name="com_phone" value="<?php echo $phone;?>"/>
<input type="text" name="location" value="<?php echo $location; ?>" class="input" />
<input type="hidden" name="com_location" value="<?php echo $location;?>"/>
<input type="hidden" name="com_id" value="<?php echo $id; ?>"/>
<textarea name="comment" cols="" rows="" class="comment-msg"><?php echo $comment; ?>
</textarea>
<input type="hidden" name="com_comment" value="<?php echo $comment;?>"/>
<input name="com_update_1" type="submit" class="btn-70" value="" />
我正在使用while循环来迭代表单字段中的值。我的while循环代码是
$query = "SELECT comments.*,
news.title
FROM comments JOIN news ON comments.news_id = news.id
ORDER BY id DESC LIMIT $from, " . COMM_POST_NUMBER;
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
$id = $row['id'];
$date = date("d-F-Y", $row['timestamp']);
$name = stripslashes($row['name']);
$email = stripslashes($row['email']);
$phone = stripslashes($row['phone']);
$location = stripslashes($row['location']);
$comment = stripslashes($row['comment']);
$news_id = $row['news_id'];
$title = stripslashes($row['title']);
$approve = $row['approve'];
迭代效果很好,它可以完美地打印数据库中的值,带有值ID的隐藏输入字段在此页面中保存正确的值,即(comments.php)。但是当我想将值传递给不同的页面<form action="action.php" method="post">
时,我的麻烦就开始了,当我点击提交时它只需要第一个id。即id值为1,它拒绝接受来自id的任何其他值。
以下是浏览器视图源代码中的代码
<div class="comments-toggle">
<input type="text" name="name" value="My Name is 16" class="input" />
<input type="hidden" name="com_name" value="My Name is 16"/>
<input type="text" name="email" value="check@email.com" class="input" />
<input type="hidden" name="com_email" value="check@email.com"/>
<input type="text" name="phone" value="919999999999" class="input" />
<input type="hidden" name="com_phone" value="919999999999"/>
<input type="text" name="location" value="Somewhere" class="input" />
<input type="hidden" name="com_location" value="Somewhere"/>
<input type="hidden" name="com_id" value="16"/>
<textarea name="comment" cols="" rows=""class="comment-msg">
</textarea>
<input type="hidden" name="com_comment" value=""/>
<input name="com_update" type="submit" class="btn-70" value="" />
</div>
这是来自action.php的代码
if( isset($_POST['com_update'])) {
echo $id = $_POST['com_id'];
if( isset($_POST['name'])) {
echo $name = htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['name'])));
$query = "UPDATE comments SET name = '$name' WHERE id = '$id'";
$result = mysql_query($query) or die('Error');
}
如何让它将正确的id值传递给action.php?
答案 0 :(得分:1)
实现此目的的方法是将表单字段定义为准备好转换为PHP数组:
<input type="hidden" name="com_id[]" value="16"/>
现在,$_POST['com_id']
应该是一个值数组。