【问题标题】:HTML input value changeHTML 输入值改变
【发布时间】:2011-02-24 09:04:54
【问题描述】:

我有一个 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 的值是相同的,没有任何变化。

有没有其他方法可以在输入字段中显示值而不放入“值”标签? 有两件事希望在一个输入字段中发生!

【问题讨论】:

  • 你为什么要这样混合$_POST$_GET
  • 鲍比表送上问候。
  • 您是否只在回发时运行代码?
  • 如果@The Scrum Meister 不明显,请 阅读SQL注入。
  • @Stephen 大多数 PHP err.. 开发人员根本不知道调试。 PHP 本来就是发烧友的语言。

标签: php html input


【解决方案1】:

您还需要发布表单 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 获取 value 字段

编辑 您的编辑使水更加混乱。我假设您要做的就是显示标题并让用户更新标题

<?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>

这应该适合你。我没有明显地测试过错误,但这个想法是合理的。您还应该添加您认为必要的任何其他输入筛选。

【讨论】:

  • 你不明白我想做什么,我想在更新之前在单个输入标签中显示标题,之后我想编辑并更新它
  • 我不明白你的意思。 “显示标题”是指从数据库中获取现有标题吗?你能列出你想要发生的步骤吗?
  • 是的,没关系。绝对使用这个脚本是非常危险的。
  • Thaxxx Budy @ 最后我找到了答案
  • 不错的答案!尽管 SQL UPDATE 行似乎与 OPs 版本相同……但出了什么问题?只是好奇并试图自己学习一些东西:)
【解决方案2】:

您同时使用$_POST$_GET。 根据&lt;form&gt;method 元素值,您需要$_POST$_GET

如果这没有帮助,请显示更多代码,以便确定您需要哪一个。

另外,您可以尝试在不阅读表单的情况下更新数据库,以检查更新本身是否正常工作。

【讨论】:

  • 如果您知道自己在做什么,可以混合使用 $_POST$_GET...。
  • 是的,但我认为/假设在这种情况下这是无意的。因此我的问题是更多示例代码。
  • 基本工作正常我想将 $title 的新值发送到 DB
  • 您需要更新您的问题并添加更多信息。现在不可能给出更有帮助的答案
【解决方案3】:

有没有其他方法可以在输入字段中显示值而不放置“值”标签?

没有。
这正是 value 属性的用途。
它有什么问题?

唯一要提的,应该不是&lt;?php echo $row['title']?&gt;而是

<?php echo htmlspecialchars($row['title'])?>

【讨论】:

  • 他工作正常,但我无法编辑此值并重新发送!如果我编辑并保存它甚至采用旧值!
  • 没有查询正在工作我想知道一个输入字段想要显示一个值但想在它想要被编辑之前发送
  • @user618124 请改写您的最后一条评论
  • 对不起,伙计们,我不知道如何向你们解释 thaxxx 很多
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多