我的表单中有一个textarea,每次发布时都会在开头添加一个额外的空格(所以每次发布表单并将其保存到数据库时,它会在开头添加一个空格)
为了澄清这个场景,我正在为整个周期添加代码。
首先,这是我的形式和textarea的方式。它可以正常使用......
Dim total as Integer
Sub CustomersGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles CustomersGridView.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
total = total + Convert.ToInt32(e.Row.Cells(the_column_index).Text) .
txtTotalUnits.Text = Convert.ToString(total)
End If
End Sub
但是,为了显示保存在数据库中的数据,我使用Laravel的<form id="myForm" action="" method="post">
<textarea id="history" rows="25" class="form-control" name="history">DefaultVal</textarea>
</form>
来回显该值。
{{ }}
我将数据发布到我的控制器后,我会收到带有<form id="myForm" action="" method="post">
<textarea id="history" rows="25" class="form-control" name="history">@if ($history) {{ str_replace('<br />', ' ', $history->value) }}@endif</textarea>
</form>
的textarea,因此我首先使用nl2br添加\r\n
,然后使用{<br />
标记删除\r\n
{1}}相应地:
str_replace()
此时,将其保存到数据库工作。检索数据也有效,并且不会在任何地方添加任何空格。但是,只要我在这样的textarea中显示它,我一发布就会在开头创建额外的空格:
public function receivePost(Request $request) {
$newHistoryText = nl2br($request->history);
$newHistoryText = str_replace(array("\r\n", "\n\r", "\r", "\n"), "", $newHistoryText);
// save to database
}
更确切地说:
A)在返回视图之前使用dd()检索数据。
B)dd在控制器(<form id="myForm" action="" method="post">
<textarea id="history" rows="25" class="form-control" name="history">@if ($history) {{ str_replace('<br />', ' ', $history->value) }}@endif</textarea>
</form>
)中发布的表单数据:
我无法弄清楚这个问题的原因。我知道如果我不在同一行写dd($request->history)
就会发生这种情况,但我做到了。 php标签也在同一行(我认为导致问题)但我找不到任何其他方式在textarea中显示数据。