0

我使用 MySQL select 提取存储在我的数据库中的文本,以便将其显示在表单中以便可以对其进行编辑。

当表单设置为数据库中保存的字符串时,在第一个空格处被截断,因此“Foo Bar”将显示为“Foo”。使用标签时不会发生这种情况。

我已确保文本字段足够大以容纳整个字符串,并且章程的数量不受限制。

在数据库中存储了整个单词并且不会发生截断。我将类型设置为 varchar(30),它有足够的空间来存储整个单词。我也尝试将类型更改为文本,但我仍然遇到问题。

我无法在任何地方找到解决方案,有人知道为什么会发生这种情况吗?

 <?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\" value=" . $row["title"] . ">"; ?>
4

2 回答 2

2

没有相关代码,这只是一个猜测,但是您是否在不使用引号的情况下设置表单输入值属性?

例如,您正在这样做吗?

<input type="text" value=<? echo $value; ?> name="formInput" />

而不是正确的语法,这是什么?

<input type="text" value="<? echo $value; ?>" name="formInput" />
于 2012-08-30T16:10:54.427 回答
2

您应该提供从您的 php 页面生成的 HTML 示例。很可能,您的值字符串没有被引用,例如您的 HTML 表单如下所示:

<input type=text value=Foo Bar>

代替

<input type=text value="Foo Bar">

这将产生您所看到的效果


更新:根据您在评论中的示例,您确实缺少引号:

有问题的旧代码(值属性值周围缺少引号) :

<?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\"
  value=" . $row["title"] . ">"; ?>

固定代码

<?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\"
 value=\"" . $row["title"] . "\">"; ?> 

请注意,您已经正确引用了该name属性,但value没有正确引用。

于 2012-08-30T16:11:14.003 回答