我有一个PHP更新页面,其中我显示的文本字段包含数据库中的值。就像这样,它正在发挥作用,
<input type="text" name="title" id="title" class="text_box" value="<?php echo $row['title']?>"/>
现在我需要将这个更新的值放回数据库中!我使用过这样的代码,但它没有更新:
$title=$_POST['title'];
$v_id = $_GET['v_id'];
$sql = mysql_query("update vehicles set title = '$title' where v_id = '$v_id'");
详细说明......输入字段就在那里。它显示$title
中包含的值(从数据库中检索),并且该值将被编辑和更新。
在我这边,我的代码工作正常,没有显示任何错误,但我给$title
给出的价值没有任何变化。
有没有其他方法可以在输入字段中显示值而不输入“value”标记? 想要在单个输入字段中发生两件事情!
答案 0 :(得分:4)
您还需要发布表单HTML。
除非您的表单如下所示,否则该代码将无效
<form method='post' action='page.php?v_id=1'>
<input type="text" name="title" id="title" class="text_box" value="<?php echo $row['title']?>"/>
</form>
这是因为你使用$ _GET来获取id字段而使用$ _POST获取值字段
修改强> 你的编辑让水更加混乱了。我将假设您要做的就是显示标题并让用户更新标题
<?php
if ($_POST) {
$title = mysql_escape_string($_POST['title']);
$id = intval($_GET['v_id']);
$sql = "update vehicles set title = '$title' where v_id = '$id'";
mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
}
if (isset($_GET['v_id'])) {
$id = intval($_GET['v_id']);
$sql = 'SELECT title FROM vehicles WHERE v_id = ' . $id;
$rs = mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
$row = mysql_fetch_assoc($rs);
$title = htmlspecialchars($row['title']);
}
?>
<form method='post' action='?v_id=<?php echo $id?>'>
<input type="text" name="title" id="title" class="text_box" value="<?php echo $title ?>"/>
<input type='submit' value='update'>
</form>
这对你有用。我没有明显的错误测试,但这个想法是合理的。您还应该添加您认为必要的任何其他输入筛选。
答案 1 :(得分:0)
您正在使用$_POST
和$_GET
。
根据{{1}}的{{1}}元素值,您需要method
或<form>
。
如果这没有帮助,请显示更多代码,以便确定您需要的代码。
此外,您可以尝试更新数据库而无需阅读表单,以检查更新本身是否正常工作。
答案 2 :(得分:0)
有没有其他方法可以在输入字段中显示值而不添加“value”标记?
不。
这正是value
属性的原因。
怎么了?
唯一要提的是,它应该不是<?php echo $row['title']?>
而是
<?php echo htmlspecialchars($row['title'])?>