【问题标题】:php echo single quote and it end javascript's scriptphp echo单引号并结束javascript脚本
【发布时间】:2014-02-20 21:19:30
【问题描述】:

我有输入文本供用户编辑他们的文本

<input type='text' id='about'>
$('#about').val('<?PHP echo $about;?>');

我没有使用 value 的原因是因为我有一个重置按钮可以重置表单。

<input type='text' id='about' value='<?PHP echo $about;?>'>

如果我把值放在里面,重置按钮将不起作用。

我的问题是如果用户使用' 输入文本,它将结束我脚本中的行

ex.
$('#about').val('It's cool');

有什么办法可以解决这个问题?

【问题讨论】:

  • $('#about').val('It\'s cool');一样转义
  • $('#about').val('&lt;?PHP echo addslashes($about);?&gt;');

标签: javascript php jquery


【解决方案1】:

addslashes()是你想要的,见下文:

$('#about').val('<?PHP echo addslashes($about);?>');

【讨论】:

    【解决方案2】:

    这是你可以做的,它确实有效

    <?php 
    $data = "aa ' aaa ' aaa";
    ?>
    <script>
    var aa = <?php echo json_encode($data); ?>;
    alert(aa);
    </script>
    

    所以你的情况

    $('#about').val('<?php echo json_encode($about);?>');
    

    【讨论】:

      【解决方案3】:

      使用 htmlspecialchars() 转义引号。

      【讨论】:

        【解决方案4】:

        您必须将字符串用双引号 javascript 括起来,如下所示:

        $('#about').val("<?PHP echo $about;?>");
        

        【讨论】:

        • 如果他们想使用双引号怎么办? ;)
        猜你喜欢
        • 2015-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-14
        • 2014-07-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多