Показать данные из API в WordPress - PullRequest
0 голосов
/ 06 июля 2019

У меня есть API для отдыха, в нем есть лекарства и информация о каждом лекарстве.

API / V1 / лекарства / Возвращает это

{
    "success": true,
    "data": [
        {
            "medicineId": 12,
            "medicineName": "Abacavir"
        },
        {
            "medicineId": 10,
            "medicineName": "Alclometasone"
        },
        {
            "medicineId": 15,
            "medicineName": " Alectinib"
        },
        {
            "medicineId": 13,
            "medicineName": "Amiloxate"
        }

и API / V1 / лекарства / IDвозвращает информацию о лекарстве

{
    "success": true,
    "data": {
        "medicineId": 16,
        "medicineName": " Alendronic acid",
        "medicineDescription": "Alendronic acid is a bisphosphonate that is used for the treatment of some forms of osteoperosis and Paget's disease . It functions by preventing resorption of bone ",
        "sideEffects": "you may experience whilst taking alendronic acid are stomach pain, indigestion or acid reflux,flatulence or bloating, constipation or diarrhoea and muscle, joint or bone pain.",
        "chemicalFormula": "C4H13NO7P2",
        "indication": "Alendronic acid is indicated for the treatment and prevention of osteoporosis in men and postmenopausal women, treatment of glucocorticoid-induced osteoporosis, and Paget's disease of bone. However, alendronic acid is not indicated for use in pediatric populations or patients with a creatinine clearance <35mL/min.",
        "associatedCondition": "Osteogenesis Imperfecta\r\nOsteoporosis\r\nOsteoporosis caused by glucocorticoid\r\nPaget's Disease",
        "alternatives": [],
        "categories": [
            "Agents Causing Muscle Toxicity",
            "Bone Density Conservation Agents",
            "Bisphosphonates"
        ]
    },
    "message": "Successfully retrieved"
}

Я хочу показать список лекарств, и когда я нажимаю на лекарство, появляется всплывающее окно с информацией об этом лекарстве. Все это внутри wordpress

Я попробовал это

<?php
$age = file_get_contents('http://link/rest/v1/medicine/');
$array = json_decode($age, true);
$medicine_names = [];
foreach($array['data'] as $key=>$value)
{
 echo ($value['medicineName']). '<br/>' ;    
}
?>

В котором перечислены лекарства

Есть идеи, как мне этого добиться в WordPress?

1 Ответ

0 голосов
/ 07 июля 2019

может быть, это поможет

function getData(string $route): array
{
    return json_decode(file_get_contents($route), true);
}

$medicineInfo = [];

foreach(getData('http://148.251.195.245:8080/MediHelp/rest/v1/medicine/')['data'] as $medicine) {
    $medicineInfo[$medicine['medicineId']] = getData(
        sprintf('http://148.251.195.245:8080/MediHelp/rest/v1/medicine/%s', $medicine['medicineId'])
    )['data'];
}

//for example
foreach($medicineInfo as $info): ?>
    <a href="#popup-for-<?= $info['medicineId'] ?>"><?= $info['medicineId'] ?></a>
    <!-- popup code -->
    <div id="#popup-for-<?= $info['medicineId'] ?>"><!-- ...$info... --></div>
<?php endforeach ?>

или использовать ajax для отправки данных в всплывающее окно

другой пример

foreach(getData('http://148.251.195.245:8080/MediHelp/rest/v1/medicine/')['data'] as $medicine) {
    $info = getData(
        sprintf('http://148.251.195.245:8080/MediHelp/rest/v1/medicine/%s', $medicine['medicineId'])
    )['data'];?>

    <a href="#popup-for-<?= $info['medicineId'] ?>"><?= $info['medicineId'] ?></a>
    <!-- popup code -->
    <div id="#popup-for-<?= $info['medicineId'] ?>"><!-- ...$info... --></div>
<?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...