使用带有换行符的php字符串作为javascript变量

时间:2018-07-01 20:00:34

标签: javascript php jquery

我正在从事的项目中,我必须从数据库中获取一些文本并将其显示在文本区域中。工作正常,没有换行符和制表符。但是当出现换行符时会给出错误信息

  

未捕获的SyntaxError:无效或意外的令牌

我的Java脚本代码为:

<script type="application/javascript">


$(document).ready(function () {


    document.getElementById('job_type').value = "<?php echo set_value('job_type') ?>";
    document.getElementById('job_cat').value = "<?php echo set_value('job_cat') ?>";

    if("<?php if(validation_errors() == false) echo "false"; else echo "true"; ?>"=="false")
    {
        $('#job_title').val("<?php echo $job[0]->job_title ?>");
        $('#job_type').val("<?php echo $job[0]->job_type ?>");
        $('#job_cat').val("<?php echo $job[0]->job_cat ?>");
        $('#salary').val("<?php echo $job[0]->salery ?>");
        $('#job_descp').text("<?php echo $job[0]->job_desc ?>");//error here



    }


    });


});


</script>

它试图设置的文本是

错误详细信息显示在图像中

Debug info

我也尝试过使用.html()和.val(),但是没有任何效果。我该如何处理。

3 个答案:

答案 0 :(得分:0)

删除job[0]->job_desc中的换行符(CR LF) 像这样:

$('#job_descp').text("<?php echo str_replace (array("\r\n", "\n", "\r"), '<br>', $job[0]->job_desc);?>");

答案 1 :(得分:0)

  

此问题已在此处https://stackoverflow.com/a/4270709/3004335

回答

但是,您可以使用json_encode

<script type="application/javascript">
$(document).ready(function () {
    document.getElementById('job_type').value = "<?php echo set_value('job_type') ?>";
    document.getElementById('job_cat').value = "<?php echo set_value('job_cat') ?>";

    if("<?php if(validation_errors() == false) echo "false"; else echo "true"; ?>"=="false")
    {
        $('#job_title').val(<?php echo json_encode($job[0]->job_title); ?>);
        $('#job_type').val(<?php echo json_encode($job[0]->job_type); ?>);
        $('#job_cat').val(<?php echo json_encode($job[0]->job_cat); ?>);
        $('#salary').val(<?php echo json_encode($job[0]->salery); ?>);
        $('#job_descp').text(<?php echo json_encode($job[0]->job_desc); ?>);//error here
    }
    });
});
</script>

不过,您确实需要注意cross site scripting

请参见https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet,尤其是规则0。

答案 2 :(得分:0)

使用了PHP函数n2lbr函数并已解决