Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
foolspeed93
1 / 1 / 0
Регистрация: 10.04.2012
Сообщений: 34
1

JSON

27.05.2015, 20:25. Просмотров 242. Ответов 1
Метки нет (Все метки)

В файле php лежит массив с именами. Используя JSON нужно по нажатию кнопки доставать рандомные айди имя и дату, и вставлять их в таблицу html. Совсем не клеится, попробовал написать но понимаю что далеко не правильно, как заставить работать не представляю. Буду рад любой подсказке.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
 
mt_srand();
 
$people = array(
    array('id'=>1,'name'=>'Ivan','date'=>'1990-07-18'),
    array('id'=>2,'name'=>'Petro','date'=>'1991-06-01'),
    array('id'=>3,'name'=>'Andriy','date'=>'1992-05-30'),
    array('id'=>4,'name'=>'Katya','date'=>'1993-03-09'),
    array('id'=>5,'name'=>'Lesya','date'=>'1992-02-15'),
    array('id'=>6,'name'=>'Oksana','date'=>'1991-02-08'),
    array('id'=>7,'name'=>'Sergiy','date'=>'1993-01-31'),
    array('id'=>8,'name'=>'Bogdan','date'=>'1992-09-26'),
    array('id'=>9,'name'=>'Roman','date'=>'1994-10-22'),
    array('id'=>10,'name'=>'Ivanka','date'=>'1989-11-13'),
);
 
$count = 1;
if (isset($_GET['count']) && 
    is_numeric($_GET['count']) && 
    $_GET['count'] > 0 && $_GET['count'] < count($people) / 2) {
 
    $count = (int) $_GET['count'];
}
 
$result = array(
    'count' => $count,
    'data' => array(
    )
);
 
$ids = array();
for ($i = 0; $i < $count; $i++) {
    $el = $people[mt_rand(0,count($people)-1)];
    if (!in_array($el['id'], $ids)) {
        $ids[] = $el['id'];
        $result['data'][] = $el;
    }
}
 
header('Content-Type: application/json');
echo json_encode($result);

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
   var  add = function() {
      // таблица
    var list = document.getElementById('table1');  
    
        var xhr = new XMLHttpRequest();
 
     // запрос к файлу php
      xhr.open('GET', 'ajax2.php');
      
            xhr.onreadystatechange = function() {
        if (xhr.readyState != 4) return;
   
           var contentType = xhr.getResponseHeader('Content-Type');
             if (contentType == 'application/json') {
            var user = JSON.parse(xhr.responseText);   
                      
                           var row = document.createElement("TR")
                                   
                                  //столбцы
                            var td1 = document.createElement("TD")
                             var td2 = document.createElement("TD")
                                var td3 = document.createElement("TD")
            console.log(user);
                             
                          td1.innerHTML = user.id;
                           td2.innerHTML = user.name;
                             td3.innerHTML = user.age;
                             row.appendChild(td1);
                             row.appendChild(td2);
                             row.appendChild(td3);
                         list.appendChild(row);
                                      }
        else {
            //alert(xhr.responseText);
        }
      }
     
      xhr.send(null);
  };
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2015, 20:25
Ответы с готовыми решениями:

Отловить ошибку в JSON.parse (переварить не JSON)
получаю ajax ответ от сервера, это строка json. Если на сервере скрипт падает,...

Проверка валидности разбора JSON (JSON.parse)
Пытаюсь разобрать некорректную json строку вот так: var response =...

Пропадает конец Json строки, при передаче Json строки через Ajax
Всем привет. Возникла следующая проблема. Из php получаю json строку,...

JSON
JSON.parse стандартный метод js ? Есть ли в спецификации ? И еще вопрос: ...

формат json
В ява скрипт у меня совсем не большие познания, но мне позарез нужна помощь....

1
alexsamos33
618 / 598 / 325
Регистрация: 26.04.2014
Сообщений: 1,968
27.05.2015, 22:46 2
С PHP всё норм, а вот с javascript вы немного намудрили.
1. В переменной user лежит массив, а вы это не учитываете;
2. Переменной age нет вообще, вместо неё есть переменная date;
3. Для обхода массива лучше использовать цикл...
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
var add = function() {
// таблица
var list = document.getElementById('table1');
 
var xhr = new XMLHttpRequest();
 
 // запрос к файлу php
xhr.open('GET', 'ajax2.php');
 
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
 
 var contentType = xhr.getResponseHeader('Content-Type');
 if (contentType == 'application/json') {
var user = JSON.parse(xhr.responseText); 
console.log(user);
var data = user.data;
console.log(data);
for (i = 0; i < data.length; i++)
{
var row = document.createElement("TR")
 
//столбцы
var td1 = document.createElement("TD")
 var td2 = document.createElement("TD")
var td3 = document.createElement("TD")
 
td1.innerHTML = data[i].id;
 td2.innerHTML = data[i].name;
 td3.innerHTML = data[i].date;
 row.appendChild(td1);
 row.appendChild(td2);
 row.appendChild(td3);
 list.appendChild(row);
}
}
else {
//alert(xhr.responseText);
}
}
 
xhr.send(null);
};
</script>
<script>
add();
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2015, 22:46

Json файл
Подскажите как пройтись по json файлу в js

Аналог get в JSON
Всем привет! Пишу приложение для iPhone при помощи Cordova. Последняя не...

Не парситься json
Здравствуйте. Перестал парситься json. Ответ от сервера такой Request...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru