簡體   English   中英

ajax響應使用pdo返回[object]並顯示我的查詢

[英]ajax response returns [object] using pdo and show my query

得到我的ajax響應發回的querystring。 阿賈克斯的作品,我知道id被傳遞,我已經在php中回顯了變量,它顯示正確,但是當我使用json編碼時,我收到了[object]警報,響應如下所示

響應:

{"queryString":"SELECT * FROM ContactInfo WHERE id = :id"}

PHP:

$id = $_POST['id'];
if (empty($id)) {
    echo "no id";
}
try {
    $conn = new PDO('mysql:host=localhost;dbname=test;charset=utf8', user, pass);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   
    $stmt = $conn->prepare('SELECT * FROM ContactInfo WHERE id = :id');
    $stmt->execute(array('id' => $id));
    echo json_encode( $stmt);
    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }

JS:

    $.ajax({
        type: "POST",
        timeout: 6000,
        data : {id: myid}, // add if using post
        dataType : 'json', //text
        crossDomain: false,
        cache: false,
        async: true,
        url: requrl,
        success: function(data) {
            alert(data);                        
        }

您需要使用fetch()傳遞結果數組:

$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo json_encode( $result );

然后jQuery將返回一個對象,這里是如何訪問它的方法:

success: function(data) {        
      alert(data.FirstName); 
}

編輯:我注意到您只返回一行,所以它不是fetchAll()。

嘗試這個:

$result = $stmt->execute(array('id' => $id));
echo json_encode($result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM