weixin_33720956 2015-12-22 00:37 采纳率: 0%
浏览 26

提取Json响应

I am trying to to extract a Json response in jquery sent from a php file. This is the .js code:

    $.ajax({
 url: 'index.php?page=register', //This is the current doc
 type: 'POST',
 datatype: 'json',
 data: {'userCheck': username},
 success: function(data){
    // Check if username is available or not
 },
 error: function(){
    alert('Much wrong, such sad');
 }
});

This is the response from the php file:

    if($sth->fetchColumn()!=0){
        //$response = array("taken");
        $response = array("username"=>"taken");
        echo json_encode($response);
        //echo '{"username':'taken"}';
    }else{
        //$response = array("available");
        $response = array("username"=>"available");
        echo json_encode($response);
        //echo '{"username":"available"}';
    }

I have tried all combinations I can think of in both files, but nothing seems to work. It is a simple check for a username in the database. If I console log the data I get from the response, I get this:

    {"username":"available"}<!DOCTYPE html>
    // The rest of the page html

So the info is there, but how do I access it? I have tried several syntaxes found around the internet, but no luck so far. I seem to recall that a json response only can contain valid json, so is the problem the html? I don't think I can avoid this due to the structure of my application, so hopefully it is possible to access the json with my present structure.

  • 写回答

3条回答 默认 最新

  • weixin_33730836 2015-12-22 00:48
    关注

    in you Ajax

    EDIT:

    change

    datatype:"json",
    

    the case of parameter name was not respected, the t must be T

    dataType:"json",
    

    now retry please

    $.ajax
    ({
        url: 'index.php?page=register', //This is the current doc
        type: 'POST',
        dataType: 'json',
        data: {'userCheck': username},
        success: function(data)
        {
            // Check if username is available or not
            switch(data.username)
            {
                case "available":
                    // do you want
                    break;
                case "taken":
                    // do you want
                    break;
            }
        },
        error: function()
        {
            alert('Much wrong, such sad');
        }
    });
    

    in PHP

    simply that, and don't forget to exit; to avoid include html page in your json response ! This is the code coming after the }".... who break your json output and make it unreadable by javascript (worste, it simply break your javascript !)

    echo json_encode(["username"=> ($sth->fetchColumn()!=0) ? "taken":"available"]);
    exit;
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀