我从表中读取值并以用户可以更改更新的形式显示它们。问题是每次我进行更新时,都会向表中的每个值添加一堆空格。
基本代码如下:
function ReadHTML($str) {
return htmlspecialchars(stripslashes($str), ENT_QUOTES);
}
$query = "SELECT * FROM " . $table_name . " WHERE id = " . $row_id;
$result = mysqli_query ($connection, $query ) or die ("Database query failed: " . mysqli_error($connection));
$row = mysqli_fetch_assoc($result);
$q1 = ReadHTML($row['q1']);
当我在表单中显示值时,它看起来很好。但是当我更新值时,空格就会被添加。
当我处理更新时,它看起来像这样:
function mysqli_prep(&$connection, $value) {
$detagged = strip_tags($value);
$escaped = mysqli_real_escape_string($connection, $detagged);
return $escaped;
}
$q1 = mysqli_prep($connection, $_POST['q1'])
$query = "UPDATE my_form SET
q1='$q1'";
谁能看出我做错了什么?
HTML 看起来像这样:
<textarea class="textarea form_textarea_field" name="comment_1" placeholder="Comments">
<?php if($saved_form == true) {echo $q1;} ?>
</textarea>
当我在浏览器中查看 DOM 时,它看起来像这样:
<textarea class="textarea form_textarea_field" name="comment_1" placeholder="Comments">
" Test text "
</textarea>
但我从来没有添加那些引号或空格,它们也没有出现在显示中。不确定这是正常现象还是问题的线索。
最佳答案
如果您不想添加任何空格,则在构建 html 时应确保文本区域中没有空格。
所以改变:
<textarea class="textarea form_textarea_field" type="textarea" name="comment_1" placeholder="Comments">
<?php if($saved_form == true) {echo $q1;} ?>
</textarea>
到:
<textarea class="textarea form_textarea_field" type="textarea" name="comment_1" placeholder="Comments"><?php if($saved_form == true) {echo $q1;} ?></textarea>
请注意,textarea
的开始和结束标记之间的所有内容都是其内容的一部分(包括换行符、空格等)。
关于PHP 每次更新记录时都会添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23749305/