如何在数据库中包含引号的文本框中设置值?

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);

我的问题是项目名称没有出现在我的文本框&lt;input type="text" class="form-control" id="cart_item_update" readonly&gt; 上,这是因为数据有引号。我尝试选择不包含引号的数据,效果很好,数据显示在文本框中。

【问题讨论】:

您需要对连接到属性的值中的引号进行 html 编码,因此 " 需要为 &amp;quot; 试试 htmlentities($getdata-&gt;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-&gt;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, '') 

【讨论】:

以上是关于如何在数据库中包含引号的文本框中设置值?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据索引在数据框中设置值[重复]

Angular - 在另一个组件的输入文本框中设置值

如何将存储在 HDFS 中包含行的文本文件转换为 Pyspark 中的数据框?

如何在 Ext.Msg.show 中包含两个文本框

如何引用文本框中包含的文本来创建 XML 文件?

在 datagridview 内的组合框中设置值