syntaxerror unterminated string literal jquery

时间:2015-12-10 07:40:42

标签: javascript php

我得到了这个奇怪的错误。它恰好是我的PHP代码嵌入到jquery中。

<?php $user=isset($_GET['u']) ? $_GET['u'] : NULL; //This returns a numeric value ?> 

<script>
  $("button[name='send_mail']").on('click',function(){
  var user = '<?php echo $user;?>'; // <----The Problem
  $.ajax({
    type:"POST",
    url:"ajax/scripts/user_mail.php?u="+user,
    success: function(data){
        alert(data);
        },
    });
  });
</script>

我尝试了单引号和双引号。这段代码恰好在我的一些文件中起作用,而在其他文件中不起作用。

3 个答案:

答案 0 :(得分:-1)

<?php
    $user = (!empty($_GET['u']))?intval($_GET['u']):0;
?>
<script language="JavaScript">
    console.log("User: " + <?php echo $user; ?>);
    // try to debug what is really in the variable
    var user = <?php echo $user; ?>;
    // same as <?= $user; ?>
</script>

答案 1 :(得分:-1)

您在代码的这一部分中有一个流氓逗号:

success: function(data){
    alert(data);
    }, //<--- here
});

应该只是:

success: function(data){
    alert(data);
    }
});

答案 2 :(得分:-1)

这有效:

<?php $user=isset($_GET['u']) ? $_GET['u'] : NULL;?>
<span id="user_id_span" style="display:none;"><?php echo $user; ?></span>

<script> 
  var user = $('#user_id_span').text();
</script>

如果您的输出不仅仅是一个字符串或数字或单行,那么这将不起作用。