我使用MySQL select提取存储在数据库中的文本,使其以表格形式显示,以便进行编辑。
当表单设置为时,数据库中的字符串在第一个空格处被截断,因此"Foo Bar"将显示为"Foo"。使用标记时不会发生这种情况。
我已经确保文本字段足够大,可以容纳整个字符串,并且charter的数量不受限制。
整个单词都存储在数据库中,不会发生截断。我将类型设置为varchar(30),这足够存储整个单词的空间。我也尝试过将类型改为文本,但我仍然有问题。
我找不到解决方案。有人知道为什么会发生这种情况吗?
<?php echo "<input type='"text'" name='"title[" . $row["id"] . "]'" value=" . $row["title"] . ">"; ?>
您应该提供从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
没有。
如果没有相关代码,这只是猜测,但您是否在不使用引号的情况下设置表单输入值属性?
例如,你在这样做吗?
<input type="text" value=<? echo $value; ?> name="formInput" />
而不是正确的语法,这是哪一个?
<input type="text" value="<? echo $value; ?>" name="formInput" />