Есть json
файл в котором содержатся сообщения вида
$content[]
[{
"time": "15:58:37",
"user": "qwe",
"message": "With []"
},
{
"time": "15:58:38",
"user": "qwe",
"message": "With []"
}]
$content
{
"time": "15:59:06",
"user": "qwe",
"message": "Without []"
}{
"time": "15:59:17",
"user": "qwe",
"message": "Without []"
}
Нужно с этого файла загружать сообщения при переходе на страницу html
. Выводиться они должны в таблицу, для каждого сообщения новая строка: время, имя, сообщение.
<table id="messages">
<tr class="mess_hide">
<td class="time"></td>
<td class="name"></td>
<td class="message"></td>
</tr>
</table>
Пытаюсь сделать это с помощью getJSON
но ничего не получается. Что я делаю не так?
$(document).ready(function() {
$.getJSON('data/messages.json', function(data) {
$('#messages').append($('.mess_hide').clone().addClass('mess_tmp').removeClass('mess_hide'));
$('.mess_tmp>.time').html(data.time);
$('.mess_tmp>.name').html(data.user);
$('.mess_tmp>.message').html(data.message);
$('.mess_tmp').removeClass('mess_tmp');
});
});
Запись в файл
$user = $_SESSION['user'];
$message = $_POST['message'];
$time = date('H:i:s');
$file = "../data/messages.json";
$json_content = json_decode(file_get_contents($file), true);
$content = array();
if(is_array($json_content)) {
$content = $json_content;
}
$content = array("time" => $time, "user" => $user, "message" => $message);
file_put_contents($file, json_encode($content, JSON_PRETTY_PRINT),FILE_APPEND);
Самое главное, чтобы даже в случае всего одного сообщения оно было в массиве , т.е. [{ "time": "13:41:56", "user": "Max", "message": "Hello"}]
$.getJSON('data/messages.json', callback);
// эмуляция
callback([{ "time": "13:41:56", "user": "Max", "message": "Hello"},{ "time": "13:42:03", "user": "Mike", "message": "Hi"}]);
function callback(respond) {
for (var i = 0; i < respond.length; i++) {
var data = respond[i];
var rowClone = $('.mess_hide').clone().removeClass('mess_hide');
$('#messages').append(rowClone);
$('.time', rowClone).html(data.time);
$('.name', rowClone).html(data.user);
$('.message', rowClone).html(data.message);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table id="messages">
<tr class="mess_hide">
<td class="time"></td>
<td class="name"></td>
<td class="message"></td>
</tr>
</table>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
не могу решить задачу воспроизведения разовой анимации при скролеНаходил пример, только когда блок полностью в зоне видимости
Недавно увидел сайт, у которого внутри одного файла стилей ~7000 строк CSS кодаТа вот, вопрос: весь этот код пишется вручную или чем-то сгенерирован?
Столкнулся с такой проблемой, что у элемента textarea не получается полностью убрать отступ в Safari (iPad)Даже при margin: 0; padding: 0; border: 0; текст все равно...