在输入框中显示整个字符串的问题(在php中)

时间:2009-06-23 14:26:04

标签: php html

我试图在输入框type = text中显示mysql表中的元素。数据是字符串值。但我只能看到整个字符串的第一个字。

但如果我回显元素,我会得到完整的字符串值。

我的代码如下所示:

  echo "Title: <input type=\"text\" name=\"title\" value=".$row['Title']."></input><br>"; 

请告诉我这里我做错了什么。

最佳

Zeeshan

8 个答案:

答案 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']。'”诀窍。绝对