【问题标题】:PHP foreach array into option valuePHP foreach 数组转换成选项值
【发布时间】:2016-07-19 01:09:54
【问题描述】:

不需要提供太多关于正在使用的 API 的信息,我正在尝试获取 option 值 以匹配选项标签中包含的内容。

类似这样的:

<option value="Foo">Bar</option>

这是 PHP:

<?php
    $counter = 0;
    $numbers = $client->account->available_phone_numbers->getList('US', 'Local', array(
    "AreaCode" => $_POST["areacode"]));
    echo "<select>";
    foreach($numbers->available_phone_numbers as $number) {
        echo "<option value=''>";
        echo $number->phone_number;
        $counter++;
        echo "</option>";
        echo "<br>";
    }
    echo "</select>";
    echo "<br>";
    echo $counter;
?>

使用这种形式:

<form action="index.php" method="post">
    Area Code:<br>
    <input type="text" name="areacode" value=""><br>
    <input type="submit" value="Submit">
</form>

【问题讨论】:

  • 你不要把&lt;br&gt;放在一个select里面,你需要把value添加到每个选项中:echo "&lt;option value='" . htmlspecialchars($number-&gt;phone_number) . "'&gt;";

标签: php select option


【解决方案1】:
<?php
$counter = 0;
$numbers = $client->account->available_phone_numbers->getList('US', 'Local',        
array(
"AreaCode" => $_POST["areacode"]
));
?>
<form action="index.php" method="post">
<?php
echo "<select>";
foreach($numbers->available_phone_numbers as $number) {
echo "<option>" . $number->phone_number . "</option>";
$counter++;
}
echo "</select>";

?>
<input type="submit" value="Submit">
</form>

【讨论】:

    【解决方案2】:

    我认为您需要在表单标签内移动选择才能提交所选数据。

    <form action="index.php" method="post">
    echo "<select>";
    foreach($numbers->available_phone_numbers as $number) {
    
    echo "<option value='".$number->phone_number."'>";
    echo $number->phone_number;
    $counter++;
    echo "</option>";
    echo "<br>";
    }
    echo "</select>";
    echo "<br>";
    echo $counter;
    ?>Area Code:<br>
    <input type="text" name="areacode" value=""><br>
    <input type="submit" value="Submit">
    </form>
    

    希望有帮助

    【讨论】:

      【解决方案3】:

      您的语法不正确。

      echo '<select>';
      foreach($numbers->available_phone_numbers as $number) {
      
          echo '<option value="' .$number->phone_number .'">';
          echo $number->phone_number;
          echo '</option>';
      }
      echo '</select>'; 
      

      此外,您的select 元素中不应包含br 标记。

      【讨论】:

      • 您应该始终使用 htmlentities 包装进入属性的值 - 如果值包含诸如 "&gt; 或其他可能破坏 html 结构的字符 - 但答案总体上是正确的
      【解决方案4】:

      echo "&lt;option value=''&gt;"; 更改为echo "&lt;option value='{$number-&gt;phone_number}'&gt;";

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-08
        • 1970-01-01
        • 2013-08-06
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 2016-08-01
        相关资源
        最近更新 更多