将echo'设置为html值字段时出现奇怪的PHP回显行为

时间:2015-11-05 10:48:24

标签: php html sql-server

让我们直接进入问题。

我有一个DB条目,它是列name1中的一个字符串,看起来像f.e.像这样:COMPANYNAME DIVADAY

这个字符串的主要属性是它主要是由两个或多个用逗号分隔的单词组成的字符串。

现在我打印出这样的条目:

echo ("<td><input id=\"firmenname1\" type=\"text\" value=".$row['firmenname1']." /></td>");

现在我在浏览器中检查结果并体验一些有趣的输出。输入的值设置为字符串中的第一个字。因此,此示例中的值类似于 COMPANYNAME 。 当我检查元素以检查它是否在太空中丢失时,我看到了:

<input type="text" value="COMPANYNAME" DIVADAY />

不知何故,值get属性在每个逗号之后或之前被关闭,因此用户无法看到整个名称。

Uppon检查我的数据库中的字符串我无法确定是否有任何隐藏的字符导致该问题。

5 个答案:

答案 0 :(得分:1)

值属性缺少引号。

echo ("<td><input id=\"firmenname1\" type=\"text\" value=\"{$row['firmenname1']}\" /></td>");

您还可以尝试将addslashes添加到值中。

$firmenname1 = addslashes($row['firmenname1'])
echo ("<td><input id=\"firmenname1\" type=\"text\" value=\"{$firmenname1}\" /></td>");

答案 1 :(得分:1)

你忘了在类型数据库输出周围加上引号: 你应该写:

echo ("<td><input id=\"firmenname1\" type=\"text\" value=\"".$row['firmenname1']."\" /></td>");

在编写方式中,html代码变为: 并且浏览器将COMPANYNAME解析为值,并将divaday解析为input元素的单独属性。如果你在“COMPANYNAME DIVADAY”附近添加附加引号,你应该会看到正确的结果。

答案 2 :(得分:1)

以这种方式尝试回声

echo "<td><input id='firmenname1'  type='text' value=".$row['firmenname1']." /></td>";

答案 3 :(得分:1)

尝试在值属性周围添加引号:

echo ("<td><input id=\"firmenname1\" type=\"text\" value=\"".$row['firmenname1']."\" /></td>");

答案 4 :(得分:0)

为了避免混淆,我通常会将我要使用的数组项转换为变量,即$ firmenname1 = $ row ['firmenname1'];这样您就可以在使用前清理和格式化数据。额外的好处是你不必担心正确的引号和反斜杠