HTML输入值更改

时间:2011-02-24 09:04:54

标签: php html input

我有一个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”标记? 想要在单个输入字段中发生两件事情!

3 个答案:

答案 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'])?>