【问题标题】: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部分

标签: javascript php jquery laravel laravel-5


【解决方案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, '') 
    

    【讨论】:

      猜你喜欢
      • 2015-07-10
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多