1

私は AJAX を初めて使用するので、コードにばかげた間違いがある可能性があることはわかっていますが、とにかく先に進みます。

ボタンがクリックされたときに呼び出される関数を作成しました。関数は.ajax()jqueryのメソッドを呼び出します。「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");
}
?>

何が問題で、どうすれば修正できますか?

4

3 に答える 3

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"); 
    } 
    ?> 
于 2013-09-29T10:56:25.960 に答える
0

次の部分にエスケープの問題があります。

onclick="deletePost(<?php echo $_GET["id"]; ?>);"

以下のようになっている必要があります。

onclick="deletePost(<?php echo $_GET['id']; ?>);"

そして、あなたは 'YEAH!' を繰り返しているので、if 条件は次のようになります。

if(data == 'YEAH!')
于 2013-09-29T10:24:05.777 に答える