Передача данных из php в json через ajax

326
08 декабря 2017, 03:24

Добрый вечер, подскажите пожалуйста как в js (можно с использованием jQuery) через ajax передать данные массива структуры из php файла в json формате и поместить эти данные в таблицу?

В условии при loadTasks должны выгружаться все данные из php, там будет предусмотрена еще сортировка, но пока хотелось бы понять как просто получить данные можно какой-то пример?

index.html

  <div class="container">
    <div class="table-responsive">
      <table class="table">
        <thead>
        <tr>
            <th>Name:</th>
            <th>Type:</th>
            <th>Date:</th>
            <th>Status:</th>
        </tr>
        </thead>
        <tbody>
        </tbody>
      </table>
    </div>
  </div>

func.php

<?php
$tasks = [
    [
        'id' => '4',
        'name' => 'Task 4',
        'type' => 'frontend',
        'date' => '1512403290',
        'status' => '0',
    ],
    [
        'id' => '5',
        'name' => 'Task 5',
        'type' => 'frontend',
        'date' => '1512403320',
        'status' => '0',
    ],
    [
        'id' => '6',
        'name' => 'Task 6',
        'type' => 'backend',
        'date' => '1512403350',
        'status' => '1',
    ],
    [
        'id' => '2',
        'name' => 'Task 2',
        'type' => 'frontend',
        'date' => '1512403200',
        'status' => '0',
    ],
    [
        'id' => '3',
        'name' => 'Task 3',
        'type' => 'frontend',
        'date' => '1512403230',
        'status' => '0',
    ],
    [
        'id' => '1',
        'name' => 'Task 1',
        'type' => 'backend',
        'date' => '1512403260',
        'status' => '1',
    ],
];
switch($_REQUEST['function'])
{
    case 'loadTasks':
        $result = [];
        if($_REQUEST['type'] == '' || $_REQUEST['type'] == 'all'){
            echo json_encode($tasks);
            die();
        }
        foreach($tasks as $task){
            if($task['type'] == $_REQUEST['type']){
                $result[] = $task;
            }
        }
        echo json_encode($result);
        break;
    case 'deleteTask':
        if(empty($_REQUEST['id'])){
            echo 0;
            die();
        }
        // code delete task
        echo 1;
        break;
    case 'editTask':
        if(empty($_REQUEST['id']) || empty($_REQUEST['type']) || empty($_REQUEST['name'])){
            echo 0;
            die();
        }
        // code edit task
        echo 1;
        break;
}?>
Answer 1

Так, php у тебя выводит json-строку. Ты обращаешься к нему и принимаешь на стороне js с помощью jquery:

$.ajax({
  type: 'POST',
  url: 'func.php',
  dataType: 'json',
  success: function(res) {
    // Дальше делай с res-ом, что хочешь. Это будет как раз твоим массивом, который ты выводил в php
  },
});
Answer 2

В файле где вызывается функция в самом начале пропишите этот код:

header('Access-Control-Allow-Origin: *');
Answer 3

Протоколы должны совпадать) а также попробуйте обновить ваш Jquery до последней версии

READ ALSO
Распределение процентов между блоками jQuery

Распределение процентов между блоками jQuery

Всем привет, есть задача распределить проценты пропорционально не могу понять как правильно сделать может кто подскажет в каком направлении...

278
Как перебрать объект и взять нужные значения

Как перебрать объект и взять нужные значения

Есть объект в нем есть значения мне надо вытаскивать из него значения, с этим я справился вот так:

245
Каким образом создается подобное?

Каким образом создается подобное?

Хочу реализовать подобное, как на сайте http://platinum-garageru/ , а точнее смену изображений при ховер на маркеры

143
ajax отправка изображения

ajax отправка изображения

Пытаюсь отправит изображения на сторонний сервер делаю так:

218