2012-02-12 17 views
1

這是一個基本的javascript函數。這是做什麼需要後編號去特定的網址執行一些操作,並返回結果爲真/假。但這實際上並沒有發生。它將在alert(data)中返回整個頁面源。我只想看到返回的真/假結果。請幫助jquery數據附帶頁面源

function cool_add(post_id) 
{ 
$.post('cool_main.php', {post_id:post_id}, function(data) { 

    alert(data); 

} 

PHP:

<?php 
    // Contains all the cool functions 
    if (!isset($_SESSION)) 
    { 
     session_start(); 
    } 

    require('connect.php'); 
?> 

<?php 
    $post_id = $_POST['post_id']; 
    if ($post_id == 1) 
    { 
     return true; 
    } 
    else { 
     return false; 
    } 
?> 
+0

真/假結果是什麼?答案在哪裏?爲什麼不直接發送簡單的字符串/ json值? – karim79 2012-02-12 15:40:50

+0

您應該將cool_main.php的代碼更改爲僅返回布爾值而不是整個頁面。 – Martijn 2012-02-12 15:41:36

+0

你可以添加'cool_main.php'的內容嗎? – 2012-02-12 15:47:50

回答

0

是從一個AJAX調用是由你所呼叫的URL,在這種情況下cool_main.php確定返回的數據。修改這個javascript不會有幫助,你需要修改你的PHP文件來返回一個布爾結果。

+0

我不明白這一點。 javascript調用了cool_main.php。執行一些操作後,php返回true/false。但是,當我看到什麼是使用JavaScript返回,即警報(數據),我看到頁面源與警報結果一起。我不想要來源。它來像是真的。我不知道標籤來自哪裏。在我的PHP代碼中的PHP文件是沒有HTML。 – 2012-02-12 15:49:29

+0

請問您是否可以編輯您的問題以包含您的PHP頁面的來源。 – 2012-02-12 15:50:48

+0

我的php: <?php //包含所有很酷的函數 if(!isset($ _ SESSION)){ session_start(); } require('connect.php'); ?> <?php $ post_id = $ _ POST ['post_id']; if($ post_id == 1){ return true; } else { return false; } 我需要connect.php所以請忽略它。這應該只在js alert中給出true/false,但我會將頁面源與此一起。 – 2012-02-12 16:03:22

0

數據將包含任何cool_main.php正在返回。

我的猜測是你的cool_main.php不能識別你發送它的帖子。

+0

我不明白這一點。 javascript調用了cool_main.php。執行一些操作後,php返回true/false。但是,當我看到什麼是使用JavaScript返回,即警報(數據),我看到頁面源與警報結果一起。我不想要來源。它來像是真的。我不知道標籤來自哪裏。在我的PHP代碼中的PHP文件是沒有HTML。 – 2012-02-12 15:50:18

0

可能有幾個可能的原因。問題不在於您的javascript代碼,而在於cool_main.php中的服務器端腳本邏輯。

在你的PHP頁面中,你必須根據你的例子來識別ajax請求和響應'true/false'。確保沒有任何內容會被髮送到瀏覽器以外的數據。

如果您使用像Zend這樣的MVC框架,您可能需要在這種情況下禁用佈局和視圖。

1

return true在PHP中用於從函數返回值。 jQuery AJAX調用將data變量分配給任何PHP文件輸出。

這裏是通過JSON傳遞布爾一個簡單的方法:

echo json_encode(array('result'=>true)); 

的jQuery:

$.post('cool_main.php', {post_id:post_id}, function(data){ 
    alert(data.result); //true 
}, 'json'); 

另一種方法:

echo 'true'; 

的jQuery:

$.post('cool_main.php', {post_id:post_id}, function(data){ 
    alert(data); //"true" 
}); 
+0

這不起作用。請幫助 – 2012-02-12 16:04:51

+0

請告訴我如何使用json – 2012-02-12 16:10:24

+0

變量'data'是您的PHP文件打印出來的。 'return true'不打印任何東西。用例如'echo'true/false';'並嘗試。 – 2012-02-12 17:54:14