2017-07-04 40 views
0

请注意下面代码中的addslashes($model->subject)部分。如果主题包含单引号,则它可以正常工作,但如果它有双引号,则javascript会生成错误,并认为onclick方法以双引号字符结尾。如何解决这个错误?PHP转义双引用onclick回声

$string.=" <a href='#' class='' data-toggle='modal' " 
    . "onclick=\"to_edit('" . $model->id . "','" . $model->doc_type_level_1 . "','" . $model->doc_type_level_2 . "','" . $model->doc_type_level_3 . "','" . addslashes($model->subject) . "','" . $model->date . "'," 
    . "'" . $model->date_release . "','" . $model->is_confidential . "'" 
    . ")\" " 
    . "data-target='#modal_doc' ><span class='fa fa-pencil'></span></a>"; 

enter image description here

enter image description here

+0

你可以用'addcslashes( 'STR', “'”) ;'只能转义单引号。 –

+0

试试这个而不是addslashes:',\\\'“。($ model-> subject)。”\\\',' – lalithkumar

+0

@IvanBolnikh我需要转义双引号。 – beginner

回答

0

你应该使用htmlspecialchars这些实体转换,使用下面的代码:

htmlspecialchars($model->subject, ENT_QUOTES); 
+0

我用这个'htmlspecialchars($ model-> subject,ENT_QUOTES)'现在它可以在双引号中工作,而不是在单引号中。 – beginner

+0

抱歉我的代码不正确,请尝试使用编辑的代码。 –

+0

是的,我知道你给出的代码的错误。尝试之后,它现在可以在双引号中运行,但不是单引号。 – beginner