Php 将sql字符串变量传递到javascript函数
我试图将查询中的字符串传递到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
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'];