如何在数据库中包含引号的文本框中设置值?
Posted
技术标签:
【中文标题】如何在数据库中包含引号的文本框中设置值?【英文标题】:How to set value in the textbox from database that contain a quotation mark in it? 【发布时间】:2020-01-06 06:01:25 【问题描述】:我正在使用 Laravel,并且我有一个更新模式。我的数据没有设置在模态框上,因为其中一个数据包含引号,如下图所示。
我的按钮代码是这样的:
<a type="button" data-toggle="modal" data-target="#cartitem_update_modal" class="dropdown-toggle btn btn-warning btn-circle" onclick="cartitem_update_modal(' $getdata->EQC_ID '
, ' $getdata->EQC_ITEM_ID '
, ' $getdata->EQC_ITEM_NAME '
, ' $getdata->EQC_ITEM_QUANTITY '
, ' $getdata->EQC_ITEM_UNIT '
, ' $getdata->EQC_ITEM_REMARK ')">
<span class="fa fa-edit" aria-hidden="true"></span>
</a>
我的 javascript 代码是这样的:
function cartitem_update_modal(EQC_ID, EQC_ITEM_ID, EQC_ITEM_NAME, EQC_ITEM_QUANTITY, EQC_ITEM_UNIT, EQC_ITEM_REMARK)
$('#cart_item_id_update').val(EQC_ID);
$('#cart_item_update').val(EQC_ITEM_NAME);
$('#cart_item_reserved_quantity_update').val(EQC_ITEM_QUANTITY);
$('#cart_item_reserved_unit_update').val(EQC_ITEM_UNIT);
$('#cart_item_remark_update').val(EQC_ITEM_REMARK);
我的问题是项目名称没有出现在我的文本框<input type="text" class="form-control" id="cart_item_update" readonly>
上,这是因为数据有引号。我尝试选择不包含引号的数据,效果很好,数据显示在文本框中。
【问题讨论】:
您需要对连接到属性的值中的引号进行 html 编码,因此"
需要为 &quot;
试试 htmlentities($getdata->EQC_ITEM_NAME)
你能弹出()和移位()引号并使用它..只是一个解决方法或编码html部分
【参考方案1】:
既然您知道您将在 javascript 调用中使用它,只需将 '
替换为 \'
或将其替换为 (空格)或什么都不用
<a type="button" data-toggle="modal" data-target="#cartitem_update_modal" class="dropdown-toggle btn btn-warning btn-circle" onclick="cartitem_update_modal(' $getdata->EQC_ID '
, ' $getdata->EQC_ITEM_ID '
, ' str_replace("'", "\'", $getdata->EQC_ITEM_NAME) '
, ' $getdata->EQC_ITEM_QUANTITY '
, ' $getdata->EQC_ITEM_UNIT '
, ' str_replace("'", "\'", $getdata->EQC_ITEM_REMARK) ')">
<span class="fa fa-edit" aria-hidden="true"></span>
</a>
【讨论】:
成功了。但它把(')变成了(/)。所以我使用str_replace("'", "\'", $getdata->EQC_ITEM_NAME)
【参考方案2】:
您正在搜索htmlentities()
<a type="button" data-toggle="modal" data-target="#cartitem_update_modal" class="dropdown-toggle btn btn-warning btn-circle"
onclick="cartitem_update_modal(' $getdata->EQC_ID '
, ' $getdata->EQC_ITEM_ID '
, ' htmlentities($getdata->EQC_ITEM_NAME) '
, ' $getdata->EQC_ITEM_QUANTITY '
, ' $getdata->EQC_ITEM_UNIT '
, ' $getdata->EQC_ITEM_REMARK ')">
<span class="fa fa-edit" aria-hidden="true"></span>
</a>
【讨论】:
【参考方案3】:$('#cart_item_update').val(EQC_ITEM_NAME.replace(/\YOURQUOTATION_MARK/g, ''));
要删除 £、€ 和 $ 的所有实例,例如,您可以使用
EQC_ITEM_NAME.replace(/£|\$|€|,|\./g, '')
【讨论】:
以上是关于如何在数据库中包含引号的文本框中设置值?的主要内容,如果未能解决你的问题,请参考以下文章