Я хочу отправить массив из функции с помощью Ajax через JSON - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь отправить массив JSON из функции.

Мой код:

function categoryTree($parent_id = 0, $sub_mark = ''){
    global $connection;
    $query = 'SELECT * FROM ws_categories WHERE parent_id = :parent_id ORDER BY sort_order ASC, name ASC';
    $statement = $connection->prepare($query);
    $statement->execute(['parent_id' => $parent_id]);
        while ($row = $statement->fetch()) {
        echo ''.$sub_mark.''.$row['name'].'';
        categoryTree($row['category_id'], $sub_mark.'– ');
    }
}

$output = array(
    "draw"          =>  intval($_POST["draw"]),
    "recordsTotal"      =>  $filtered_rows,
    "recordsFiltered"   =>  get_total_all_records(),
    "data"          =>  categoryTree()
);
echo json_encode($output);

Я не уверен, где мой код неверен. Просто попробуйте собрать все данные из categoryTree () и отправить их через JSON, но безуспешно.

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Теперь покажите мне категории, но только родительские без подкатегорий:

$output = array();

function categoryTree($parent_id = 0, $sub_mark = ''){
    global $connection;
    $query = 'SELECT * FROM ws_categories WHERE parent_id = :parent_id ORDER BY sort_order ASC, name ASC';
    $statement = $connection->prepare($query);
    $statement->execute(['parent_id' => $parent_id]);
    $filtered_rows = $statement->rowCount();

        while ($row = $statement->fetch()) {
                $sub_array = array();
                $sub_array[] = $sub_mark.$row['name'];
                $sub_array[] = '<button type="button" name="update" id="'.$row["category_id"].'" class="btn btn-info btn-sm update"><span class="glyphicon glyphicon-pencil"></span></button>';
                $array[] = $sub_array;
                categoryTree($row['category_id'], $sub_mark.'&ndash; ');
        }
        return $array;
}

$data = categoryTree();

$output = array(
    "draw"              =>  intval($_POST["draw"]),
    "recordsTotal"      =>  $filtered_rows,
    "recordsFiltered"   =>  get_total_all_records(),
    "data"              =>  $data
);
echo json_encode($output);

Я уверен, что это уже близко, но я не знаю, что я пропустил.

0 голосов
/ 12 июня 2019

Просто попробуйте что-нибудь подобное, но безуспешно:

function categoryTree($parent_id = 0, $sub_mark = ''){
    global $connection;
    $query = 'SELECT * FROM ws_categories WHERE parent_id = :parent_id ORDER BY sort_order ASC, name ASC';
    $statement = $connection->prepare($query);
    $statement->execute(['parent_id' => $parent_id]);
        while ($row = $statement->fetch()) {
                $sub_array = array();
                $sub_array[] = $row['name'];
                $data[] = $sub_array;
                categoryTree($row['category_id'], $sub_mark.'&ndash; ');
                return $data;
    }
}

$output = array(
    "draw"              =>  intval($_POST["draw"]),
    "recordsTotal"      =>  $filtered_rows,
    "recordsFiltered"   =>  get_total_all_records(),
    "data"              =>  $data
);
echo json_encode($output);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...