使用jquery发布时从函数获取数据

时间:2012-07-21 13:37:40

标签: php jquery json post error-handling

我开始讨厌AJax,我发现在使用jQuery发布时很难获得任何有用的信息。

我有一个脚本,可以在单击按钮时添加或删除一些信息。 jquery发布到调用类中函数的文件。这部分有效,但我无法获得成功的消息来操纵前端。这是我的代码。

php有效,但我一直收到错误JSON.parse:我用google搜索的意外字符,但我的json看起来还不错?

的jQuery

$('.fave').click(function(){

var favId = $(this).attr('data-user-fave');

var params = {};

params['fave_id'] = favId;
params['fav_flag'] = '1';


    $.post('index.php?link=my_applications', params, function(data){

    var data = $.parseJSON(data);

    if(data.message === 'success'){


    alert(data.flag);

    }
    else{
    alert("Fail");
    }



    });

jQuery发布到

的文件中的代码
$profile = new profile();


if($_POST['fav_flag'] == '1'){

$js = $profile->fave_user();
echo json_encode($js);


}

班级档案中的功能

function fave_user(){

    $query = "SELECT * FROM `favourite` WHERE user_id = '{$_SESSION['loginArr']['user_id']}' AND fave_id = '{$_POST['fave_Id']}'";

    $nr = $GLOBALS['DB']->num_rows($query);


    if($nr >= 1){

    //exists so remove


    $query = "DELETE FROM `favourites` WHERE user_id = '{$_SESSION['loginArr']['user_id']}' AND fave_id='{$_POST['fave_Id']}'";

    $GLOBALS['DB']->deleteQuery($query); 

    $return["message"]="success";
            $return["flag"]="del";



    return $return;

    }


    else{

    //not a fave so add



    $query = "INSERT INTO `favourite` (user_id, fave_id) VALUES ('{$_SESSION['loginArr']['user_id']}', '{$_POST['fave_id']}')";

    $GLOBALS['DB']->insertQuery($query);

    $return["message"]="success";
            $return["flag"]="ins";

    return $return;





    }


}

1 个答案:

答案 0 :(得分:0)

我建议使用$.ajax方法:它更先进。