jQuery Ajax没有发布到PHP文件

时间:2013-09-29 10:15:25

标签: javascript php jquery ajax

我是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");
}
?>

问题是什么?我该如何解决?

3 个答案:

答案 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";
}
?>

试试这个,让我们详细清楚地了解您的问题。祝你好运