这是一个基本的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;
}
?>
答案 0 :(得分:1)
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框架,你可能需要在这种情况下禁用布局和视图。