【问题标题】:PHP: Populating an array with form valuesPHP:使用表单值填充数组
【发布时间】:2015-09-17 16:41:11
【问题描述】:

我有一个包含 5 个问题的问卷调查表,每个问题都有 5 个单选按钮选项。现在,我想在按下提交按钮时捕获此表单数据。我被困在用通过 POST 方法发送的这些单选按钮的值填充数组。

我写的代码抛出错误:“注意:未定义的索引:E:\xampp\htdocs\dataCollect\form1.php 第 11 行中的'radio11'”

代码如下:

<?php
if (isset($_POST['btnForm1'])){
for($count = 1; $count < 6; $count++){
$radioName = "radio1".$count;
$arrForm1 = array($_POST["'".$radioName."'"]);
}}
<?>
<html>
<body>
<form name="ESForm" action="form1.php" method="post">
<table name="ESTable" style="oTab1">
<tr>
    <td style="oRow">1. AAAAAA <br>
    <input type="radio" name="radio11" value="1">Never<br>
    <input type="radio" name="radio11" value="2">Seldom<br>
    <input type="radio" name="radio11" value="3">Sometimes<br>
    <input type="radio" name="radio11" value="4">Often<br>
    <input type="radio" name="radio11" value="5">Always<br>
    </td>
</tr>
<tr>
    <td style="oRow">2. AAAAAA<br>
    <input type="radio" name="radio12" value="1">Never<br>
    <input type="radio" name="radio12" value="2">Seldom<br>
    <input type="radio" name="radio12" value="3">Sometimes<br>
    <input type="radio" name="radio12" value="4">Often<br>
    <input type="radio" name="radio12" value="5">Always<br>
    </td>
</tr>
<tr>
    <td style="oRow">3. AAAAA <br>
    <input type="radio" name="radio13" value="1">Never<br>
    <input type="radio" name="radio13" value="2">Seldom<br>
    <input type="radio" name="radio13" value="3">Sometimes<br>
    <input type="radio" name="radio13" value="4">Often<br>
    <input type="radio" name="radio13" value="5">Always<br>
    </td>
</tr>
<tr>
    <td style="oRow">4. AAAaA <br>
    <input type="radio" name="radio14" value="1">Never<br>
    <input type="radio" name="radio14" value="2">Seldom<br>
    <input type="radio" name="radio14" value="3">Sometimes<br>
    <input type="radio" name="radio14" value="4">Often<br>
    <input type="radio" name="radio14" value="5">Always<br>
    </td>
</tr>
<tr>
    <td style="oRow">5. AAAAA <br>
    <input type="radio" name="radio15" value="1">Never<br>
    <input type="radio" name="radio15" value="2">Seldom<br>
    <input type="radio" name="radio15" value="3">Sometimes<br>
    <input type="radio" name="radio15" value="4">Often<br>
    <input type="radio" name="radio15" value="5">Always<br>
    </td>
</tr>
<tr>
    <td><input type="submit" name="btnForm1" value="Submit"></td>       
</tr>
</table>
</form>
</body>
</html>

【问题讨论】:

  • 如果没有为单选按钮选择任何值,则不会发送密钥。因此,每个值都需要isset($_POST["radio11"])(或类似的)。
  • 亲爱的 Halcyon,我不应该依赖使用 POST 提交按钮吗?因为我希望 PHP 在按下按钮后获取值。
  • $_POST 很好,替代方案是$_GET,它具有相同的“问题”。

标签: php arrays forms for-loop populate


【解决方案1】:

这是不正确的:

$arrForm1 = array($_POST["'".$radioName."'"]);
                         ^^^^----------^^^^----useless

"'" 引号绝对没有必要。这就是你应该拥有的一切:

$arrForm1 = array($_POST[$radioName]);

以及为什么将单选按钮的值包装在一个数组中。无论如何,您只能从每个单选按钮集中取回一个值。

【讨论】:

  • 谢谢,马克。我打算将值扭曲到数组中作为后续部分的原因,这些部分还有更多问题。希望将这些值捕获到一个数组中,并在问卷结束时将它们提交到数据库中。您认为这种方法效率低吗?
  • 您在每次迭代中都创建了一个新的单项数组,所以这仍然是毫无意义的工作。如果你想构建一个值数组,那么它必须是$arrForm1[] = $_POST[$radioName]
  • 我明白你对这个 Marc 的看法。请原谅我的无知,因为我对 PHP 完全陌生,但是如何从 PHP 中的 5 组单选按钮中的每一个中捕获值?我尝试了简单地将其分配给变量的基本方法,但它甚至不识别单选按钮名称。似乎 PHP 只能获取一组单选按钮的值。请参见下面的代码: if(isset($_POST[$btnName])){ $valRdo1 = stripslashes($_POST['r11']); }
  • 为什么要测试$btnName的存在,然后在if中硬编码r11
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多