当我的按钮在表单之外时,获取复选框的值

时间:2015-12-04 14:57:32

标签: javascript php smarty

我对包含foreach的表单有一些问题,我在表单之外输入提交按钮(在foreach之外)但是当我选择复选框时,它只获得第一个复选框!怎么做?感谢

Remarque:我无法将表格放在foreach附近。

{foreach from=$aWSForServer2 key=ws item=webservice}
    <form action="index.php" method="post" onSubmit="return confirm('{$i18n.confirm_suppress}')" id="FormDelSelWS" >
    <input type="hidden" name="view_mode" value="{$view_mode}" />
    <input type="hidden" name="action" value="del_sel_ws" />
    <input type="hidden" name="idServer" value="{$server_id}" />
    <input type="checkbox" name="WSSelcet[]" value="{$webservice.Webservice__}" />
   </form>
{/foreach}
<table style="width:620px;margin:5px;">
  <tr>
   <td style="width:300px"></td>
   <td style="width:140px"></td>
   <td style="width:160px"></td>
    <td>
   <button type="submit" value="{$i18n.suppress}" form="FormDelSelWS">
    supprimer</button>
  </td>
 </tr>
  </table>

1 个答案:

答案 0 :(得分:0)

  • 表单控件不能与多个表单相关联
  • 文档中的ID必须是唯一(因此您无法在循环中生成具有相同ID的多个表单)。

您需要重新考虑您的逻辑,可能包含一个表单。

目前尚不清楚循环中哪些值发生了变化,但看起来只有复选框才有效。如果是这样,你只需要在表单中移动你的循环。

<form action="index.php" method="post" onSubmit="return confirm('{$i18n.confirm_suppress}')">
    <input type="hidden" name="view_mode" value="{$view_mode}" />
    <input type="hidden" name="action" value="del_sel_ws" />
    <input type="hidden" name="idServer" value="{$server_id}" />

    {foreach from=$aWSForServer2 key=ws item=webservice}
        <input type="checkbox" name="WSSelcet[]" value="{$webservice.Webservice__}" />
    {/foreach}

    <button type="submit" value="{$i18n.suppress}">
        supprimer
    </button>

如果循环中的任何其他值发生变化,并且需要与特定的提交按钮相关联,那么您可以:

  • 只需将它们保存在服务器上,然后使用复选框值
  • 查找它们
  • 使用与复选框名称相关联的表单对其进行编码(然后在服务器上查找,但在$_POST

这样:

<input type="hidden" name="idServer[{$webservice.Webservice__}]" value="{$server_id}" />