我有多个查询表单,它们都调用用于电子邮件转发的同一个文件,所以它的标题是 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.
表单提交的次数与页面上的表单数量相同。
守着星空守着你
慕后森