撇号不允许我删除项目


Apostrophe won't let me delete items

我有一个CMS,我可以在其中创建/删除项目/菜单/页面等。我有一个 onclick jquery 脚本,一旦您单击图标,它就会删除某些内容。我遇到的问题是,当我有一个名称中带有撇号的页面/菜单/项目时,我无法删除它。

这是我的代码片段:

jquery:

function confirmDeleteMenuItem(mi_id, mi_name) {
if (confirm('Are you sure you want to delete the menu item '''+mi_name+'''?'nNote: All sub-items will also be deleted.')) {
    $.ajax({
        dataType:  'json',
        url: cmsRelPath+'/app/menus/ajax_delete_menu_item.php',
        type: 'POST',
        data: {
            mi_id: mi_id
        },

.php:

$cell .= '<img src="'.$cms_settings["cms_relative_dir"].'/images/icon_delete.png" width="30" height="30" border="0" alt="delete" title="Click to delete item." class="cursorPointer" onclick="confirmDeleteMenuItem('.$row->mi_id.','''.html_entities($row->mi_name).''');" />';

谁能帮我解决这个问题?

您可以在confirm()中使用双引号:

if (confirm('Are you sure you want to delete the menu item "'+mi_name+'"?'nNote: All sub-items will also be deleted.')) {
/* ............ */

和 PHP:

$cell .= '<img src="'.$cms_settings["cms_relative_dir"].'/images/icon_delete.png" width="30" height="30" border="0" alt="delete" title="Click to delete item." class="cursorPointer" onclick="confirmDeleteMenuItem('.$row->mi_id.','''.html_entities(str_replace("'", "''", $row->mi_name)).''');" />';

您可以使用 '' 符号转义撇号,例如 '' .