【问题标题】:how to move array option select from HTML to PHP如何将数组选项选择从 HTML 移动到 PHP
【发布时间】:2022-06-29 01:57:17
【问题描述】:

我有使用循环的输入选项

<?php for ( $i = 0; $i < 2; $i++){ ?> 
   <select name="opt">
      <option value="A">A</option>
      <option value="B">B</option>
   </select>
<?php } ?>

我想要这样的数据输入选项:

$data_opt = array("A","B");

但我不明白如何将值选项移动到 PHP 中的索引数组

【问题讨论】:

  • PHP 在服务器上进行处理,然后再向客户端/浏览器发送任何内容。并且客户端无权评估 PHP 代码。要将信息返回到服务器以进行 PHP 处理,请使用 XHRFetch。在这里阅读我的答案,它可能有助于解释原因和方式:stackoverflow.com/questions/72022099/…
  • 我不明白,但我使用 $_POST
  • 对——您也可以发布表单。如果表单发布到服务器上的 PHP 文件,PHP 将具有$_POST["opt"],但它只有选定的值。而且我不明白为什么你有一个输出 2 个相同选择列表的 PHP for 循环。
  • 因为未指定计数变量所以我使用for循环而不是foreach
  • 我不明白。你想达到什么目的?您在寻找什么用户响应?为什么要写两个相同的选择列表?

标签: php html arrays select option


【解决方案1】:

选择列表不能具有相同的名称。只有一个会被发送回服务器。

可以使用不同的名称,但更适合您的需要,使选择列表在发布到 PHP 文件时成为一个数组。

您可以使用空括号&lt;select name="opt[]"&gt;,PHP 会自动为它们编制索引。

或者您可以显式索引它们:&lt;select name="opt[0]"&gt;&lt;select name="opt[1]"&gt;

或者你可以使用你的for循环索引变量来索引它们:&lt;select name="opt[&lt;?php echo $i; ?&gt;]"&gt;

form.html

<form action="process.php" method="post">

<?php for ( $i = 0; $i < 2; $i++){ ?> 
   <select name="opt[<?=$i?>]">
      <option value="A">A</option>
      <option value="B">B</option>
   </select>
<?php } ?>

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

进程.php

<?php

$data_opt = $_POST["opt"];
print_r($data_opt);

/*
If "A" is selected in the first select, and "B" in the second:
Array
(
    [0] => A
    [1] => B
)
*/

?>

&lt;?php echo $i; ?&gt; 的简写版本是:&lt;?=$i?&gt;

【讨论】:

    猜你喜欢
    • 2012-01-17
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2016-02-03
    • 2015-02-06
    相关资源
    最近更新 更多