Php 将sql字符串变量传递到javascript函数

Php 将sql字符串变量传递到javascript函数,php,Php,我试图将查询中的字符串传递到javascript函数中 整数将传递到函数中,但字符串不会 echo "<a href='#' onclick='delete_game({$title});' class='btn'>Delete</a>"; <script type='text/javascript'> function delete_game(title){ var answer = confirm('Really?'); if(answ

我试图将查询中的字符串传递到javascript函数中

整数将传递到函数中,但字符串不会

echo "<a href='#' onclick='delete_game({$title});' 
class='btn'>Delete</a>";

<script type='text/javascript'>
function delete_game(title){
    var answer = confirm('Really?');
    if(answer){
        window.location = 'delete.php?id=' + title;
    }
}
</script>
echo”“;
功能删除游戏(标题){
var answer=确认(“真的吗”);
若有(答复){
window.location='delete.php?id='+标题;
}
}
我希望javascript函数能被执行,但什么也没发生。

有几件事:

我会将
window.location
更改为
window.location.href

将您的回音更改为:

echo "<a href=\"#\" onclick=\"delete_game('" . $title . "');\" class=\"btn\">Delete</a>";
如果您想让它更干净一点,并准备使用jQuery:

<a href="#" class="btn delete" data-title="<?= $title ?>">Delete</a>
<script type='text/javascript'>
$(document).on('click', '#delete', function () {
   var title = $(this).data('title');
   var answer = confirm('Really?');
    if (answer){
        window.location.href = 'delete.php?id=' + title;
    }
});
</script>

$(文档)。在('单击','删除')上,函数(){
var title=$(this.data('title');
var answer=确认(“真的吗”);
若有(答复){
window.location.href='delete.php?id='+标题;
}
});

为什么不使用ajax来实现这一点?正如评论中提到的,混合PHP/JS并不好

在HTML中,您可以执行以下操作

我假设你用的是刀片

在PHP中,您处理从post$\u post接收数据的过程

$title = $_POST['title'];

您可以更好地理解jQuery的Ajax函数。

需要在函数调用中引用字符串<代码>删除游戏(\“{$title}\”)你不应该混合使用PHP+JS,这是一种糟糕的做法。内联js/css也是一种糟糕的做法。
相反,什么也没发生。
我认为这是不对的。我希望这会引发一个控制台错误。@Peter我认为这是首选,但不认为是compulsory@treyBake你说得对。谷歌搜索告诉我它也做了同样的事情。谢谢你,它工作得很好。不过有一个问题:为什么我们在双引号前使用\呢?@RaviShankerGowda实际上
delete\u游戏('$title')
接受字符串值,您可以将其设置为
onclick='delete\u游戏('$title')
也可以正常工作,但是当您使用
时,这会破坏字符串,因此您需要添加
\”
,以便它不会破坏字符串string@RaviShankerGowda这是一个逃避角色。由于使用“``打开
echo,因此在字符串中使用它时必须对其进行转义。@RaviShankerGowda-如果您不想关心转义引号(这会使代码有点混乱),我建议您只需关闭PHP标记,编写HTML,然后再次打开它。类似这样的内容:
?>
<a href="#" onclick="return deleteGame({$title})">Delete Game</a>
function deleteGame(title){
    var answer = confirm('Really?');
    if(answer){
        $.ajax({
          url : "your-php-file.php",
          type : 'post',
          data : {
               title : title
          }
     })
     .done(function(msg){
          $("#result").html(msg);
     })
     .fail(function(error){
          console.log(error);
     }); 
    }
}
$title = $_POST['title'];