Можно ли отправить обратно массив json вместе с отдельными переменными - PullRequest
0 голосов
/ 01 мая 2010

Эй, ребята, у меня есть функция jjery ajax, которая получает данные из сценария php. Я хочу вернуть массив со всеми онлайн-пользователями, который получен из оператора mysql, и я хочу отправить вместе с ним другие отдельные переменные, которые мне нужны для других целей. Если у кого-то есть идеи, я был бы очень признателен. Примечание: пример ниже, чтобы проиллюстрировать, что я хочу сделать, я понимаю, что json-кодирование массива с другими переменными не работает.

Jquery

$.ajax({
type: "POST",
   data: "parameters",
   url: "retrieval.php",
    dataType: 'json',
   success: function(json)
   {
    $('#div1').html(json.array);
    $('#div2').html(json.variable1);
$('#div3').html(json.variable2);
}
})

PHP

$qryuserscount1="SELECT * FROM active_users";
$userscount1=mysql_query($qryuserscount1);
while ($row = mysql_fetch_array($userscount1)) {
$onlineuser= $row['username'];
$id=$row['id'];

$data[]=$onlineuser.$id; //for example there are 3 users, should send 3 entries back
}
$data['variable1']='something';
$data['variable2']='something else';

$out = json_encode($data);
print $out;

Ответы [ 4 ]

1 голос
/ 01 мая 2010

На стороне PHP у вас должно быть что-то вроде:

$result = array();

$qryuserscount1="SELECT * FROM active_users";
$userscount1=mysql_query($qryuserscount1);
while ($row = mysql_fetch_array($userscount1)) {
  $onlineuser= $row['username'];
  $id=$row['id'];

  $result['array'][]=array('name'=>$onlineuser, 'id' => $id); //for example there are 3 users, should send 3 entries back
}
$result['variable1']='something';
$result['variable2']='something else';

$out = json_encode($result);
print $out;

Сторона JQuery может оставаться как есть.

0 голосов
/ 01 мая 2010

В вашем PHP переменные данные должны быть массивом (в PHP массив на самом деле является упорядоченной картой).
data ['ids'] будет массивом идентификаторов.
data ['variable1'] будет переменной1 и т. д.

тогда json_encode (data) даст вам нужный вам json.

0 голосов
/ 01 мая 2010

Вы можете использовать следующую структуру:

{loggedUsers: [the list], variable1: 'something', variable2: 'something else'}
0 голосов
/ 01 мая 2010

Вы действительно хотите отправить обратно объект JSON, содержащий то, что вам нужно.

{
    "Users" : [
        "Jim",
        "Bob",
        "Sue"
    ],
    "Something" : 2,
    "Else" : "This is something else."
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...