2017-07-04 78 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