我使用MySQL select拉取存储在数据库中的文本,以便将其显示在表单中,以便可以进行编辑。
当表单设置为时,数据库中保存的字符串在第一个空格处被截断,因此"Foo Bar“将显示为"Foo”。使用标记时不会发生这种情况。
我已经确保文本字段足够大,可以容纳整个字符串,并且字符的数量不受限制。
在数据库中,整个单词被存储,并且没有发生截断。我将类型设置为varchar(30),它有足够的空间来存储整个单词。我也尝试过将类型更改为文本,但仍然存在问题。
我在任何地方都找不到解决方案,有人知道为什么会发生这种情况吗?
<?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\" value=" . $row["title"] . ">"; ?>发布于 2012-08-31 00:11:14
您应该提供从您的php页面生成的HTML示例。最有可能的是,您的值字符串没有被引用,例如,您的HTML表单如下所示:
<input type=text value=Foo Bar>而不是
<input type=text value="Foo Bar">这将产生您所看到的效果。
更新:根据您在评论中的示例,您确实缺少引号:
有问题的旧代码( value 属性值前后缺少引号)
<?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-31 00:10:54
在没有相关代码的情况下,这只是一种猜测,但是您是否在不使用引号的情况下设置表单输入值属性?
例如,你在做这件事吗?
<input type="text" value=<? echo $value; ?> name="formInput" />而不是正确的语法,这是什么?
<input type="text" value="<? echo $value; ?>" name="formInput" />https://stackoverflow.com/questions/12201106
复制相似问题