2013-09-29 95 views
1

我是AJAX新手,所以我知道我的代碼中可能存在一個愚蠢的錯誤,但無論如何我會繼續。jQuery Ajax沒有發佈到PHP文件

我有一個函數,當點擊一個按鈕時被調用。該函數調用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

你嘗試登錄'data'本身? –

+0

不,數據不是JSON。 –

+0

@JakubMichálek東西正在記錄,但沒有任何顯示 –

回答

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

中有以下部分的逃生問題:

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

它必須是如下:

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

而且,你是呼應「YEAH!」,所以如果條件應該是:

if(data == 'YEAH!') 
+1

不需要轉義,內部''「'在PHP中,外部在HTML中。 ;) –

+0

Ofcourse這需要轉義或使用單引號。整個html是一個字符串,並且onclick會在遇到匹配的雙引號時突然結束 – Rajesh

+0

不,輸出將是'onclick =「deletePost(6);」'例如,沒有額外的引號...... –

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

試試這個,讓我們知道詳細和明確你的問題。好運