在输入文本中,我只得到一个字符串。例如,如果在数据库名称字段中具有“ abc xyz”。因此,它仅显示abc而不是全名,所有字段都会发生这种情况。请也检查我的代码。
while($row = mysqli_fetch_array($result))
{
//print_r($row['name']);
echo "<tr>";
echo "<td> ". $row['id'] . "</td>";
echo "<td> <input type=text placeholder = name onchange= nameValidation(this) value = ".$row["name"]." disabled> </td>";
echo "<td> <input type='email' placeholder = 'email' value = ". $row['email'] ." onchange= nameValidation(this) disabled> </td>";
echo '<td> <input type="button" value="edit" onclick="edit(this)">
<input type="button" value="update" onclick="update(this)" style="display:none;">
<input type="button" value="Delete" onclick="delete1(this)" style="display:none;">
</td>';
echo "</tr>";
}
echo "</table>";
答案 0 :(得分:1)
HTML规范says:
属性放置在开始标记内,由名称和值组成,以“ =”字符分隔。如果属性值不包含ASCII空格或“'= <或>中的任何一个,则可以不加引号。否则,必须使用单引号或双引号将其引起来。该值以及” =“字符,如果该值为空字符串,则可以完全省略。
在这种情况下,文本“ abc xyz”确实包含空格,必须加引号。但这不在您的代码中。完成PHP的解析之后,您的input
标签将为:
<input type=text placeholder = name onchange= nameValidation(this) value = abc xyz disabled>
其中,“ abc”将被解释为值,而“ xyz”将被解释为另一个未知属性。
要解决此问题,您需要使用\"
引用该值,如下所示:
echo "<td> <input type=text placeholder=name onchange=nameValidation(this) value=\"" . $row["name"] . "\" disabled> </td>";
或者您可以切换到单引号:
echo '<td>';
echo '<input type="text" placeholder="Enter your name" onchange="nameValidation(this)" value="' . $row['name'] . '" disabled>';
echo '</td>';