php,在同一页面上处理多个动态表单

php,在同一页面上处理多个动态表单,php,html,forms,Php,Html,Forms,我知道有人问过不同的问题,但这个问题与我所能找到的不同。我正在用数据库中的信息在一个页面上构建订阅的动态列表,每个订阅都有一个“取消”按钮,该按钮使用一些表单数据来实现取消 以下是每个表行上的“取消”按钮示例: <form method="post" action=""> <?php $token = $_SESSION['token'] = md5( session_id() . time(). rand() ); ?> <input type="hidd

我知道有人问过不同的问题,但这个问题与我所能找到的不同。我正在用数据库中的信息在一个页面上构建订阅的动态列表,每个订阅都有一个“取消”按钮,该按钮使用一些表单数据来实现取消

以下是每个表行上的“取消”按钮示例:

<form method="post" action="">
  <?php $token = $_SESSION['token'] = md5( session_id() . time(). rand() ); ?>
  <input type="hidden" name="token" value="<?php echo $token; ?>" />
  <input type="hidden" name="sg_subscriptionID" value="<?php echo $subscriptionID; ?>" />
  <input type="hidden" name="sg_postID" value="<?php echo $post->ID; ?>" />
  <input type="submit" class="button" name="submit" value="Cancel" />
</form>


您可以在PHP中检查多个表单

for ($i = 0; $i < $count; $i++){
    if (isset($_POST['submit'.$i])){ // check for every forms
        // insert your own logic
    }
}
($i=0;$i<$count;$i++)的
{
如果(设置($_POST['submit.$i]){//检查每个表单
//插入你自己的逻辑
}
}

不管您有多少表单,都可以使用上面的代码来识别。

您可以对多个表单使用html输入数组

例如:- 在您的代码中:-

<form method="post" action="">
  <?php $token = $_SESSION['token'] = md5( session_id() . time(). rand() ); ?>
  <input type="hidden" name="token[<?php echo 'form_'.$i ?>]" value="<?php echo $token; ?>" />
  <input type="hidden" name="sg_subscriptionID[<?php echo 'form_'.$i ?>]" value="<?php echo $subscriptionID; ?>" />
  <input type="hidden" name="sg_postID[<?php echo 'form_'.$i ?>]" value="<?php echo $post->ID; ?>" />
  <input type="submit" class="button" name="submit[<?php echo 'form_'.$i ?>]" value="Cancel" />
</form>
<!-- $i is the key for loop -->

你不需要这一行
也因为接受的答案是正确的,我建议使用单选按钮或复选按钮在选定的订阅上打勾,然后单击一个取消和接受按钮这是一个很好的例子,yahoo邮箱系统,你选择所有要删除的邮件,然后点击删除按钮。这正是我想要的需要!要指出的是,对于其他使用此功能的用户,您需要定义$count。我将其定义为
$count=100
$submits = $_POST['submit'];
// $submits loks like ['form_1']
// Now take the first key
$key = array_keys($submits)[0];
// This is the token for the given submit button
$token = $_POST['token'][$key];