问题描述
我有一个HTML表单,用于查询MysqL数据库中的条目并将这些值输入几个文本区域,在其中可以对其进行编辑并随后保存这些更改。
sql / PHP交互似乎可以正常工作,我得到了查询的信息,并能够相应地更新数据库。但是,每当我访问(string)信息并将echo
插入文本区域时,突然在实际字符串内容的前面突然插入了四行空白行。
我不知道这些空白行是从哪里来的,以及如何消除它们。
这是表单文本区域中的代码:
<textarea
name="MicroLoc_Entry"
id="MicroLoc_Entry"
style="position:absolute;left:581px;top:45px;width:73px;height:18px;z-index:14;"
rows="1"
cols="1"
spellcheck="false"
>
<?PHP
include ('db_connect.PHP');
$ID = $_POST['ItemID'];
$sql = "SELECT MicroLoc from Main WHERE ItemID = ".$ID ;
$result = MysqLi_query($link,$sql);
$res = MysqLi_fetch_array($result);
$msg = $res['MicroLoc'];
echo preg_replace('/\s\s+/','',$msg);
?>
</textarea>
使用ltrim($string)
或preg_replace('/\s+/g',$string)
或preg_replace('/\s\s+/',$string)
只会将空格减少为两个额外的空白行,而不会全部删除。
非常感谢您的帮助!
解决方法
在<textarea>
之前运行代码,然后在<textarea>
内部回显结果。
因此,如果您的代码生成任何换行符-它将在<textarea>
之外。
<?php
include ('db_connect.php');
$ID = $_POST['ItemID'];
$sql = "SELECT MicroLoc from Main WHERE ItemID = ".intval($ID) ;
$result = mysqli_query($link,$sql);
$res = mysqli_fetch_array($result);
$msg = $res['MicroLoc'];
$echomsg = preg_replace('/\s\s+/','',$msg);
?>
<textarea
name="MicroLoc_Entry"
id="MicroLoc_Entry"
style="position:absolute;left:581px;top:45px;width:73px;height:18px;z-index:14;"
rows="1"
cols="1"
spellcheck="false"
><?php echo $echomsg; ?></textarea>
还请确保<textarea>
和</textarea>
标签之间没有其他空格或换行符。因为这些也可能是不需要符号的来源。