У меня есть апи отдыха, в нем есть лекарства и информация о каждом лекарстве.
апи/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?
Это не проблема, я просто не знаю, как написать этот код, который получает данные из API.






может это поможет
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 } ?>
E_NOTICE : тип 8 -- Неопределенный индекс: MedicineName -- в строке 12 E_NOTICE : тип 8 -- Неопределенный индекс: MedicineId -- в строке 13 E_WARNING : тип 2 -- Недопустимое смещение строки 'medicineName' -- в строке 12 E_WARNING : тип 2 -- Недопустимое смещение строки 'medicineId' -- в строке 13 E_WARNING : тип 2 -- file_get_contents(148.251.195.245:8080/MediHelp/rest/v1/medicine/S): не удалось открыть поток: HTTP-запрос не выполнен! HTTP/1.1 404 -- в строке 6 Исключение: возвращаемое значение getData() должно иметь тип массива, возвращается ноль
Спасибо, у вас есть какие-нибудь идеи о том, как показать информацию о каждом лекарстве во всплывающем окне, которое появляется, когда я нажимаю на каждое лекарство?
почему проблема в том, чтобы вставить этот код в wordpress?