【问题标题】:Generating A Dropdown Menu from an API call in PHP从 PHP 中的 API 调用生成下拉菜单
【发布时间】:2016-09-12 15:25:27
【问题描述】:

我是 PHP 初学者。作为练习,我从 A View From My Seat (www.aviewfrommyseat.com) 调用 API,该网站允许人们上传在某些场所的座位上拍摄的照片。

我想写的是一个应用程序,人们在其中输入场地名称,下拉列表将立即显示可用部分的列表。有一个 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>

谁能帮帮我?

【问题讨论】:

  • 你为什么要在你的echo 语句中做一个foreach 循环?
  • 我希望代码循环遍历每个“部分”并将其形成一个

标签: php arrays drop-down-menu populate


【解决方案1】:

我认为您的问题是您试图在 echo 语句中执行 foreach 循环。

    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>\"

...你不应该需要 &lt;?= 而已经在一个带引号的字符串中,所以我从我的示例中删除了它。

【讨论】:

    猜你喜欢
    • 2012-04-13
    • 2013-08-31
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2011-02-06
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多