2015-06-01 6 views
2

Я запрашиваю свою базу данных с помощью ajax (jquery), но данные, с которыми я возвращаюсь, с трудом справляются. Я заметил, что другие опубликовали аналогичные проблемы и определили PHP-код (в частности, как данные передаются массиву) как проблема. Однако я не мог найти решение. Содержание моих возвращаемых данных (когда я преобразовать полученные данные в строку) выглядит следующим образом:Работа с возвращенными данными JSON

[{"id":"1","userName":"admin","userPassword":"admin","userEmail":"[email protected]","userRegistrationIP":"","registrationDateTime":"2015-05-28 21:22:54","userLastLogin":"2015-05-28 21:22:54"}] 

Я бы очень хотел, чтобы быть в состоянии вывести отдельный элемент из возвращаемых данных, такие, как userLastLogin.

Мой Аякса запрос:

$.ajax({ 

    url: 'authenticate2.php', 
    type: 'POST', 
    dataType: 'JSON', 
    data: { 
      username: $('#username').val(), 
      }, 
    success: function (res) { 

    $('#resultBox').text(res); 

    } 
}); 

Мой PHP ниже:

<?php 

$con = mysqli_connect('127.0.0.1','root','','db1'); 
if (!$con) { 
    die('Could not connect: ' . mysqli_error($con)); 
} 

mysqli_select_db($con,"db1"); 
$sql="SELECT * FROM Users WHERE userName = 'admin'"; 

$result = mysqli_query($con,$sql); 


$rows = array(); 
while($r = mysqli_fetch_assoc($result)) { 
    $rows[] = $r; 
} 

echo json_encode($rows); 
mysqli_close($con); 
?> 
+1

Итак, в чем проблема? –

+0

Я не могу получить отдельные элементы (то есть userLastLogin) из возвращаемых данных – user1542125

ответ

1

Это поможет вам

JS

success: function (res) { 
var res = [{"id":"1","userName":"admin","userPassword":"admin","userEmail":"[email protected]","userRegistrationIP":"","registrationDateTime":"2015-05-28 21:22:54","userLastLogin":"2015-05-28 21:22:54"}]; 
$.each(res,function(key,value){ 
    alert(res[key].id); 
    alert(res[key].userName); 
    alert(res[key].userPassword); 
    alert(res[key].userEmail); 
    alert(res[key].userRegistrationIP); 
    alert(res[key].registrationDateTime); 
    alert(res[key].userLastLogin); 
}) 
} 
0

Попробуйте

var json = '{"id":"1","userName":"admin","userPassword":"admin","userEmail":"[email protected]","userRegistrationIP":"","registrationDateTime":"2015-05-28 21:22:54","userLastLogin":"2015-05-28 21:22:54"}'; 
    for(var i = 0; i < json.length; i++) { 
    var obj = json[i]; 

    console.log(obj.userLastLogin); 
} 
+0

- это php-код или javascript? Я бы очень хотел потянуть userLastLogin на стороне клиента, используя javascript. – user1542125

+0

Проверьте обновленный ответ –

1

Вы можете получить доступ к отдельным элементам из массива, как этот (на стороне клиента)

$.ajax({ 
    .... 
    .... 
    success: function (res) { 

     alert(res[0].userLastLogin); 

     // OR 

     alert(res[0]['userLastLogin']); 

    } 
}); 
1

Проверьте это:

$.ajax({ 

    url: 'authenticate2.php', 
    type: 'POST', 
    success: function(res) { 
      var response = $.parseJSON(res); 
      console.log(res.userLastLogin); 

    }) 

или вы можете просто сделать это в Ajax успеха:

$.each(JSON.parse(res), function() { 

    console.log(this[Object.keys(this)[6]]); 

}); 
0

Если вы хотите использовать только данные userLastLogin, вы можете попробовать это,

while($r = mysqli_fetch_assoc($result)) { 
    $rows['userLastLogin'] = $r['userLastLogin']; 
} 
Смежные вопросы