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

JSON - JavaScript

27.05.2015, 20:25. Просмотров 231. Ответов 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);
  };

http://www.cyberforum.ru/javascript/thread951241.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2015, 20:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос JSON (JavaScript):

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

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

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

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

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

1
alexsamos33
617 / 597 / 326
Регистрация: 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
Привет! Вот еще темы с решениями:

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

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

Сериализация JSON
Есть иерархия объектов, например такая: var gallery = {}; gallery.img =...

JSON массив
Всем привет, запутался, не знаю как быть с выводом массива... ...


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

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

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