为了账号安全,请及时绑定邮箱和手机立即绑定

同一页面使用PHP引擎的多个表单一次性提交

同一页面使用PHP引擎的多个表单一次性提交

PHP
holdtom 2021-12-03 10:30:00
我有多个查询表单,它们都调用用于电子邮件转发的同一个文件,所以它的标题是 emailForwarding.php。我显然设法在前端使用 jQuery 分离表单,但是 emailForwarding.php 中的脚本的处理次数与查询表单的数量相同。我只希望 php 脚本适用于我提交的表单。我尝试使用 .eq() 和 .index() 隔离脚本的效果,并传递一个名为 $arg 的参数来仅触发包含所选表单的 div.vendor-wrapper 的表单提交事件。单个.php:echo '<div class="vendor-wrapper"><form method="post" action="" name="form" class="commentForm"><textarea name="comment" placeholder="Please enter your message in the space of 300 characters and hit the Confirm button." value="" class="message" maxlength="300"></textarea><input name="confirm" type="button" value="Confirm"><input class="send" name="send'.$i++.'" type="submit" value="Send"><input type="hidden" name="position" val=""></form></div>;<script>$('.confirm').click(function(){$('.vendor-wrapper').find('.position').val('');var index = $(this).parents('.vendor-wrapper').index()-1;if($('.vendor-wrapper').eq(index).find('.message').val()){$('.vendor-wrapper').eq(index).find('.confScreen').show();$('.vendor-wrapper').eq(index).find('.position').val(index);}});</script>电子邮件转发.php:if(isset($_POST['position'])):$arg = 'send';$arg .= $_POST['position'];echo "<script>console.log('PHP: ".$arg."');</script>";if(isset($_POST[$arg])): if(isset($_POST['comment'])):   $EmailCustomer = $_POST['email'] = $current_user->user_email;//The rest of the script for email processing omitted.表单提交的次数与页面上的表单数量相同。
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

在 single.php 的标签前插入 include() 禁用重复提交。


查看完整回答
反对 回复 2021-12-03
?
慕后森

TA贡献1802条经验 获得超5个赞

你能提供更多的代码吗?因为我试图重现该问题,但无法使用提供的代码。因为,代码中不清楚 $_POST['position'] 代表什么。

echo 语句用户是否为任何循环。您可以尝试为 FORM 取一个不同的名称吗?

<form method="post" action="" name="form-$i" class="commentForm">


查看完整回答
反对 回复 2021-12-03
  • 2 回答
  • 0 关注
  • 241 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信