Я начинающий программист на 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']) . '§ion_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>
Может кто-нибудь мне помочь?
Я думаю, что ваша проблема в том, что вы пытаетесь выполнить 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>\"
… и вам не нужно <?=
в то время как уже внутри строки в кавычках, поэтому я исключил это из моего примера
Других решений пока нет …