我是AJAX的新手所以我知道我的代码中可能存在一个愚蠢的错误,但无论如何我会继续。
我创建了一个在单击按钮时调用的函数。该函数调用jquery的.ajax()
方法。我将数据发送到名为'delete_post.php`的文件。
HTML:
<button class="btn btn-primary" onclick="deletePost(<?php echo $_GET["id"]; ?>);">Yes</button>
以上代码有效。
JS:
function deletePost(postid) {
$.ajax({
type: 'post',
url: "delete_post.php?id="+postid,
success: function(data) {
if(data.error == true) console.log('error');
else console.log('problem?');
}
});
}
上面的代码正在调用.ajax()
函数,但是没有记录'问题?'进入控制台。
这是PHP文件:
<?php
require_once '...';
if(isset($_GET["id"])) {
$id = $_GET["id"];
echo "YEAH!";
} else {
header("location: index.php");
}
?>
问题是什么?我该如何解决?
答案 0 :(得分:4)
JS:
function deletePost(postid) {
$.post('delete_post.php', {id : postid}, function(data){
console.log(data);
}, 'json');
}
PHP:
<?php
require_once '...';
if(isset($_POST["id"])) {
$data['res'] = 'yes';
echo json_encode($data);
} else {
header("location: index.php");
}
?>
答案 1 :(得分:0)
以下部分有一个转义问题:
onclick="deletePost(<?php echo $_GET["id"]; ?>);"
必须如下:
onclick="deletePost(<?php echo $_GET['id']; ?>);"
并且,你回应'YEAH!',所以if条件应该是:
if(data == 'YEAH!')
答案 2 :(得分:0)
以下是您的工作代码,在您的AJAX中,您正在“POST”,在您的PHP文件中使用“GET”。
trigger.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script>
function deletePost(postid) {
$.ajax({
type: 'GET',
url: "http://localhost/overflow/delete_post.php?id="+postid,
success: function(data) {
console.log('success:'+data);
}, error: function(xhr, status, error){
console.log(xhr.responseText);
}
});
}
</script>
</head>
<body>
<button class="btn btn-primary" onclick="deletePost(9); return false;">Yes</button>
</body>
</html>
delete_post.php
<?php
//require_once '...';
if(isset($_GET["id"])) {
$id = $_GET["id"];
echo "YEAH!";
//do something
} else {
// header("location: index.php");
echo "not set";
}
?>
试试这个,让我们详细清楚地了解您的问题。祝你好运