jquery数据随页面源而来

时间:2012-02-12 15:37:27

标签: php javascript jquery

这是一个基本的javascript函数。这样做是将post id转到特定的url执行一些操作并将结果返回true / false。但这实际上并没有发生。它在alert(数据)中返回整个页面源。我想只看到返回的true / false结果。请帮忙

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

4 个答案:

答案 0 :(得分:1)

PHP中的

return true用于从函数返回值。 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"
});

答案 1 :(得分:0)

从AJAX调用返回的数据由您调用的URL决定,在本例中为cool_main.php。修改此javascript无济于事,您需要修改PHP文件以返回布尔结果。

答案 2 :(得分:0)

数据将包含返回的cool_main.php。

我的猜测是你的cool_main.php无法识别你发送的后期变种。

答案 3 :(得分:0)

可能的原因很少。问题不在于您的javascript代码,而在于cool_main.php中的服务器端脚本逻辑。

在您的PHP页面中,您必须根据您的示例识别ajax请求并仅响应“true / false”。确保除了该数据之外,不会向浏览器发送任何内容。

如果你使用像Zend这样的MVC框架,你可能需要在这种情况下禁用布局和视图。