从动态创建的输入字段id创建数组

时间:2014-04-19 13:57:31

标签: php arrays

我需要做的是检索输入字段的所有值,并在按下提交按钮后将它们存储在数据库中。

以下是我正在做的事情:

我从查询中检索到未知数量的行,我为每个可填充的输入字段动态创建了ID。 (所以如果我得到5行,我有10个输入字段,如果我得到10行,20个输入字段)

这篇文章:

    <input class="goals" type="number" id="'.$row[SCHE_WED].'_'.$row[SCHE_LAND_ID1].'" value="" maxlength="3" '.$active.'/>

如何将所有id="'.$row[SCHE_WED].'_'.$row[SCHE_LAND_ID1].'"'放入数组中? 我已经尝试过输入name=""。 (但是当使用数组while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))时,它不喜欢name=""所以我将其更改为id =&#34;&#34;)

我在另一个名称中使用的名称=&#34;&#34;对于输入字段是这样的:

    $fields = array('','','','',''); // Add all your field names to an array
    $data = array();
    foreach ($fields as $field)
    {
     if (isset($_POST[$field]))
     {
      $data[$field] = $_POST[$field];
      ${$field} = $_POST[$field];
 }
    }

但我不知道如何或者可以找到如何将动态生成的ID放入类似的代码中(见下文)。

if (sqlsrv_has_rows($stmt))
{
    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) )
    {
    $dateconvert = $row[SCHE_DATE];
    $converted = date("d-m-yy", strtotime($dateconvert));
    echo    '
<tr>
    <td style="text-align:center"; colspan="15">Wedstrijd en plaats gegevens voor wedstrijd '.$row[SCHE_WED].'</td>
</tr>
<tr>
    <td></td>   
    <td>Stad: '.$row[Stdn_stad].'</td>
    <td></td>
    <td>Inwoners Stad: '.$row[STDN_INWNR_CAP].'</td>
    <td></td>
    <td>Stadion naam: '.$row[STDN_NAAM].'</td>
    <td></td>
    <td>Capaciteit Stadion: '.$row[STDN_CAP].'</td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
</tr>
<tr>
    <td></td>
    <td>Datum: '.$converted.'</td>
    <td></td>
    <td>Tijd: '.$row[SCHE_TIME].'</td>
    <td></td>
    <td style="text-align:right";>Thuis: '.$row[SCHE_LAND1].'</td>
    <td> - </td>
    <td>Uit: '.$row[SCHE_LAND2].'</td>
    <td></td>
    <td><input class="goals" type="number" id="'.$row[SCHE_WED].'_'.$row[SCHE_LAND_ID1].'" value="" maxlength="3" '.$active.'/></td>        
    <td> - </td>
    <td><input class="goals" type="number" id="'.$row[SCHE_WED].'_'.$row[SCHE_LAND_ID1].'" value="" maxlength="3" '.$active.'/></td>
    <td></td>
    <td>Totokruisje: <input class="goals" type="number" id="toto_'.$row[SCHE_WED].'" value="" maxlength="3" '.$active.'/></td>
    <td></td>
</tr>
  ';

    }
}           
  echo '
<tr>
    <td colspan="15"></td>
</tr>
  </table>
  </div>
  ';
  ?>

1 个答案:

答案 0 :(得分:1)

一个想法是你可以为目标+团队组合创建两个输入数组。

您可以根据需要重复此组合以实现多个目标。

<input type="text" name="teams[]" value="" />
<input type="number" name="goals[]" value="" />

然后,当您的表单提交时,您有两个数组:$_POST['teams']$_POST['goals']。您可以使用索引将团队与以下目标相匹配:

foreach($_POST['teams'] as $key => $team) {
   echo $team;
   $goal = $_POST['goals'][$key];
   echo $goal;
}

根据需要处理。您可以使用jQuery动态添加表单元素,如下所示:http://jsfiddle.net/6G7yB/6/

希望这有帮助

编辑:

你也可以这样做:http://www.php.net/manual/en/reserved.variables.post.php#87650