2013-08-26 18 views
0

Jquery - 我得到undefined,但在PHP中給我的表信息的答覆。試圖讓數組回到表中列表

function formfill(dblist) { 
    var tableheader = "<thead><tr><th>Database Nick</th><th>Database IP</th> <th></th></tr></thead>"; 

    $('#table2').empty(); 
    $('#table2').append(tableheader); 

    $.each(dblist, function (key, value) { 
     $('#table2').append('<tr><td>' 
     + dblist['DBNick'] 
     + '</td><td>' 
     + dblist['DBIP'] 
     + '</td><td><input class="add" id="add" name="add" value="add" type="submit"></input></td></tr>'); 

    }); 
} 

$('#userlist').on('change', function() { 
    var selected = $('#userlist').val(); 

    console.log(selected); 

    $.ajax({ 
     url: '/php/user/userdbtable.php', 
     type: 'POST', 
     data: { user: selected }, 
     success: function (data) { 
      formfill(data) 
     }, 
     error: function (xhr, status, err) { console.log(xhr, status, err); } 
    }); 
}); 

這是PHP發出正確的數據,但我無法弄清楚如何將它從對象中拉出來。

<?php 
session_start(); 

include '../connect/anonconnect.php'; 

$myusername= $_POST['user']; 

$useridsql = $dbh->prepare("SELECT * FROM Users WHERE UserLogin= :login"); 
$useridsql->execute(array(':login' => $myusername)); 
$useridsql = $useridsql->fetch(); 

$userid = $useridsql['idUser']; 

$query = 'SELECT * FROM DBList INNER JOIN UserDBList 
    ON DBList.idDatabase = UserDBList.idDatabase ';//WHERE UserDBList.idUser = '.$userid; 
$sql = $dbh->prepare($query); 
$sql->bindParam(':username', $myusername, PDO::PARAM_STR, 12); 
$sql->execute(); 
$user = $sql->fetchAll(PDO::FETCH_ASSOC); 

if($sql->rowCount() == 1){ 
    header('Content-type: application/json'); 
    echo json_encode($user,JSON_FORCE_OBJECT); 
} 
else { 
    echo 0; 
} 
?> 
+0

發佈PHP返回的JSON對象。 – leon

+0

我們是否假設#userlist是一個select? – Rooster

+0

是用戶列表是下拉菜單的名稱和ID – user1552172

回答

2

我認爲你的循環有錯誤。它應該看起來像這樣:

$.each(dblist, function (index, item) { 
    $('#table2').append('<tr><td>' 
     + item['DBNick'] 
     + '</td><td>' 
     + item['DBIP'] 
     + '</td><td><input class="add" id="add" name="add" value="add" type="submit"></input></td></tr>'); 

}); 
+0

看起來不錯,雖然'value'和'item'會一樣,所以'item'是多餘的。 –

+0

@PaulRoub - 你是對的......編輯我的答案以消除冗餘。謝謝 – zigdawgydawg

+0

感謝球員它工作:) – user1552172