массивы — Создание выпадающего меню из вызова API в переполнении стека

Я начинающий программист на PHP. Для практики я звоню по API из A View From My Seat (www.aviewfrommyseat.com), веб-сайта, который позволяет людям загружать фотографии, снятые со своих мест в определенных местах.

То, что я хотел бы написать, — это приложение, в котором люди вводят название места, и из выпадающего списка сразу же появляется список доступных разделов. Существует API для вызова разделов, но мне нужно выяснить правильный синтаксис для заполнения списка. Я собрал вместе Франкенштейн некоторый код из других ответов Stack Overflow, которые я нашел, но на самом деле ничего не работает. \

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

Вот первая часть кода PHP (выбирает URL)

if (!empty($_GET['venue'])) {
$venue_url = 'https://aviewfrommyseat.com/avf/api/venue.php?appkey=API_KEY&venue=' . urlencode($_GET['venue']) . '&section_list=true';
$venue_json = file_get_contents($venue_url);
$venue_array = json_decode($venue_json, true);
}
?>

Эта вторая часть является фактическим разделом HTML с кнопкой.

<body>
<h1> Search for a Venue</h1>
<div class = "middle_box">
<p> Enter in a venue to get more info about it and to view available    sections. </p>
<form action="">
<input type = "text" name = "venue" />
<button type="submit">submit </button>
</form>

И здесь я пытаюсь использовать PHP для заполнения различных всплывающих разделов:

<?php
if(!empty($venue_array)) {
echo "<p> Here are the available sections for {$venue_array['avfms'][0]['name']}. Select one to view seats. </p>";
echo "<select name =\"section\" id =\"section\">
<option selected=\"selected\">Choose one</option>
foreach($venue_array['avfms'][0]['section'] as $section) {
<option value=\"<?= $section['section']\">< $section['section']></option>\"</select>";
}
?>

</div>
</body>
</html>

Может кто-нибудь мне помочь?

0

Решение

Я думаю, что ваша проблема в том, что вы пытаетесь выполнить foreach петля внутри echo заявление.

    echo "<select name =\"section\" id =\"section\">
<option selected=\"selected\">Choose one</option>
foreach($venue_array['avfms'][0]['section'] as $section) {
<option value=\"<?= $section['section']\">< $section['section']></option>\"</select>";

Попробуйте выделить это:

<?php
if(!empty($venue_array)) {
echo "<p> Here are the available sections for {$venue_array['avfms'][0]['name']}. Select one to view seats. </p>";
// open select
echo "<select name =\"section\" id =\"section\">
<option selected=\"selected\">Choose one</option>";

// start loop
foreach($venue_array['avfms'][0]['section'] as $section)
echo "<option value=\"$section\"> $section </option>\"";

// close select
echo "</select>";
}
?>

</div>
</body>
</html>

Также обратите внимание, что вы объявляете переменную $section от

foreach($venue_array['avfms'][0]['section'] as $section)

… поэтому мне странно, что вы ссылаетесь на значение в качестве индекса массива:

<option value=\"<?= $section['section']\">< $section['section']></option>\"

… и вам не нужно <?= в то время как уже внутри строки в кавычках, поэтому я исключил это из моего примера

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]