web-dev-qa-db-ja.com

SyntaxError: ''文字列リテラルにエスケープされていない改行が含まれています

私にこれを告げるコンソールエラーがあります:

SyntaxError: ''文字列リテラルにエスケープされていない改行が含まれています

構文を何度か確認しましたが、エラーを修正できません。何か識別できる場合は、コードをコピーします。

    $('#nouveau').click(function(){
        $('#action').html('<?php echo preg_replace('/\s\s+/', '', $langs->trans("Delete") ); ?>');
        $('.titre_ecv').html('<?php echo addslashes(trim(preg_replace('/\s\s+/', '', $langs->trans("ecv_nouveau_formation")))); ?>');
        $('.nouveau').show();
        $('#valider').show();
        $id=$('#tr_formations tr').length+1; 
        $('#tr_formations').append('<tr><td><input name="action" type="hidden" value="create"><input type="text" name="formations['+$id+'][etablissement]" autocomplete="off" style="width:95%" /></td> <td style="width:10%;"> <select class="niveau flat" id="niveau" name="formations['+$id+'][niveau]" ><option value="0" ></option><option value="Qualifiant"  ><?php echo preg_replace('/\s\s+/', '', $langs->trans("Qualifiant") ); ?></option><option value="Bac" >Bac </option> <option value="Bac+1" >Bac+1 </option><option value="Bac+2" >Bac+2 </option><option value="Bac+3" >Bac+3 </option><option value="Bac+4" >Bac+4 </option><option value="Bac+5" >Bac+5 </option><option value="Master_specialisé" ><?php echo preg_replace('/\s\s+/', '', $langs->trans("Master_specialisé") ); ?> </option><option value="Master_recherche" ><?php echo preg_replace('/\s\s+/', '', $langs->trans("Master_recherche") ); ?> </option> <option value="Doctorat" >Doctorat </option></select> </td> <td ><input type="text"  name="formations['+$id+'][intitule]" autocomplete="off" style="width:95%" /></td> <td><input type="text"  name="formations['+$id+'][filiere]" autocomplete="off" style="width:95%" /></td><td style="width:8%;"><input type="text" name="formations['+$id+'][debut]" class="datepicker debut" value="<?php echo date('d/m/Y') ?>" onchange="MinDate(this);" autocomplete="off" /></td> <td style="width:8%;"><input type="text" name="formations['+$id+'][fin]" value="<?php echo date('d/m/Y') ?>" class="datepicker fin" onchange="MaxDate(this);" autocomplete="off" /><div align="center"><label><input type="checkbox" name="experiences['+$id+'][no_jours]" onchange="no_jourss(this);"> <b class="nos_jour"><?php echo trim(preg_replace('/\s\s+/', '', $langs->trans("ecv_no_jours") )); ?></b></label></div> </td><td align="center"><img src="<?php echo DOL_MAIN_URL_ROOT.'/theme/md/img/delete.png' ?>" class="img_delete" onclick="delete_tr(this);"></td></tr>');
        $( ".datepicker" ).datepicker({
            dateFormat: 'dd/mm/yy'
        });
        $(".niveau").select2()
    });

私の仕事は、既存のコードを修正することです。ご協力ありがとうございました

2
HeleneTitan
 $('#action').html(...)

そして

 $('.titre_ecv').html(...)

'と "が混在しているため、エラーが発生するはずです。 PHPはWebブラウザーではなくサーバー上で実行されるため、その<?php...は機能しません。

編集

それはうまくいくかもしれません:

$('#action').html("<?php echo preg_replace('/\s\s+/', '', $langs->trans('Delete') ); ?>");
$('.titre_ecv').html("<?php echo addslashes(trim(preg_replace('/\s\s+/', '', $langs->trans('ecv_nouveau_formation')))); ?>");
3
Sixtus