重新加载php脚本时,在输入文本字段中空格字符后的文本被截断

时间:2019-02-21 04:51:28

标签: php html mysql

在输入文本中,我只得到一个字符串。例如,如果在数据库名称字段中具有“ 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>";

1 个答案:

答案 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>';