JSON.parse为单个键返回多个值

时间:2018-01-21 19:02:20

标签: javascript php json ajax

我在mysql数据库中设置了一个表.. firstName,lastName,email,password,allow,allow。

我加载了一个假人,我正在测试XMLHttpRequest()功能。

出于某种原因而不是像这样返回数据:

[{"firstName":"Theodore","lastName":"Roosevelt","email":"teddyR@gmail.com","password":"12345678","active":"N","allow":"Y"}]

它返回的数据如下:

[{"firstName":"Theodore","0":"Theodore","lastName":"Roosevelt","1":"Roosevelt","email":"teddyR@gmail.com","2":"teddyR@gmail.com","password":"12345678","3":"12345678","active":"N","4":"N","allow":"Y","5":"Y"}]

我无法弄清楚它为什么重复和编号值。这是我的超级简单的html / js:

<body>
    <div id="results">
        <button type="button">Get Data</button>
    </div>
</body>

<script>
    $("button").click(function(){
        $.ajax({url: "selectTest.php", success: function(result){
            $("#results").html(result);
        }});
    });
</script>

这是我的php文件(一个调用另一个函数):

首先:

<?php
include('config.php');
include('web_db_operations.php');
$email = 'teddyR@gmail.com';
echo getAllUserInfo_userTable($email);
?>

第二

function getAllUserInfo_userTable(string $email){
    include 'config.php';
    $sql = 'SELECT * FROM userTable WHERE email= :email';
    $stmt = $conn->prepare($sql);       
    $stmt->bindParam(':email', $email, PDO::PARAM_STR);
    $stmt->execute();
    $getResults = $stmt->fetchAll();
    $myJSON = json_encode($getResults);
    return $myJSON;
    }

到目前为止,我一直在使用会话变量,但我想开始学习如何异步做事,这对我来说都是新的。

谢谢。

1 个答案:

答案 0 :(得分:2)

fetchAll()默认按名称和索引返回列,请参阅here,如果您不想要,请指定一个。
要仅使用名称,

$getResults = $stmt->fetchAll(PDO::FETCH_ASSOC);