我试图在输入框type = text中显示mysql表中的元素。数据是字符串值。但我只能看到整个字符串的第一个字。
但如果我回显元素,我会得到完整的字符串值。
我的代码如下所示:
echo "Title: <input type=\"text\" name=\"title\" value=".$row['Title']."></input><br>";
请告诉我这里我做错了什么。
最佳Zeeshan
答案 0 :(得分:8)
您尚未在生成的HTML中将文字括在引号中,请尝试以下操作:
echo "Title: <input type=\"text\" name=\"title\" value=\"".$row['Title']."\"></input><br>";
或更好
echo 'Title: <input type="text" name="title" value="'.$row['Title'].'"></input><br>';
避免了必须逃避双引号。
答案 1 :(得分:3)
您在属性值周围缺少引号:
echo "<input type=\"text\" name=\"title\" value=\"" . htmlspecialchars($row['Title']) . "\"><br>"
此外,您应该使用htmlspecialchars,标题包含"
或<>
。
最后,没有</input>
答案 2 :(得分:1)
style="width:auto;"
元素上的 input
似乎无法解决问题,因此我猜你必须使用Javascript调整字段大小。这是用户将要编辑的字段吗?
答案 3 :(得分:1)
我首先将其重写为:
?>
<div>
<label>Title:
<input type="text" name="title" value="<?php echo htmlspecialchars($row['Title'])?>">
</label>
</div>
<?php
所以它是:
然后,如果问题仍然存在,请检查生成的html 而不是PHP。每个级别的代码生成都会让您从问题中解脱出来,您为自己创造的生活就越难。
您正在比较浏览器如何呈现PHP生成的HTML与PHP。查看HTML,找出它的错误(validator.w3.org可以帮助),然后弄清楚PHP如何生成它。
答案 4 :(得分:0)
也许您需要调整表单元素的大小。
<input type="text" size="50">
这是一个宽度为50个字符的文本输入。
使用nl2br()回显您的行,看看它是否包含换行符。如果它包含新行,你会想要将它们剥离出来,以便能够在一行上显示文本。
echo nl2br(row['Title']);
答案 5 :(得分:0)
你的字符串中可能有一个\ n字符。 input type =“text”无法处理。您可以将其剥离并用空格替换它:str_replace(“\ n”,“”,$ subject)或完全删除它。另一个原因是引用“在你的字符串里面.htmlspecialchars($ subject)是一个很好的解决方案,可以摆脱那些会弄乱你的HTML的字符。
答案 6 :(得分:0)
您似乎没有将value
属性包装在引号中,如果$row['Title']
包含空格,则不带引号,只有该空格才会被设置为值。尝试:
echo 'Title: <input type="text" name="title" value="' . $row['Title'] . '" /><br />';
答案 7 :(得分:0)
value =“'。$ row ['Title']。'”诀窍。绝对