Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 同一页面上的多个联系人表单jQuery_Php_Jquery_Html_Forms_Contact - Fatal编程技术网

Php 同一页面上的多个联系人表单jQuery

Php 同一页面上的多个联系人表单jQuery,php,jquery,html,forms,contact,Php,Jquery,Html,Forms,Contact,我有一个使用TMForm.js和MailHandler.php的联系人表单,运行良好 现在,我想在同一html页面上添加另一个联系人表单,并且我想在电子邮件中标识我将从提交中收到的第二个表单 问题是这只适用于第一种形式。我怎样才能解决这个问题 这是我的代码: HTML: 这是PHP: <?php $owner_email = $_POST["owner_email"]; $headers = 'From:' . $_POST["email"] . "\r\n

我有一个使用TMForm.js和MailHandler.php的联系人表单,运行良好

现在,我想在同一html页面上添加另一个联系人表单,并且我想在电子邮件中标识我将从提交中收到的第二个表单

问题是这只适用于第一种形式。我怎样才能解决这个问题

这是我的代码: HTML:

这是PHP:

<?php
        $owner_email = $_POST["owner_email"];
        $headers = 'From:' . $_POST["email"] . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'Content-Type: text/plain; charset=UTF-8' . "\r\n";
        $subject = 'NEW MESSAGE ' . $_POST["name"];
        $messageBody = "";

        if($_POST['name']!='nope'){
                $messageBody .= '<p>Nome: ' . $_POST["name"] . '</p>' . "\n";
                $messageBody .= '<br>' . "\n";
        }
        if($_POST['email']!='nope'){
                $messageBody .= '<p>Email Address: ' . $_POST['email'] . '</p>' . "\n";
                $messageBody .= '<br>' . "\n";
        }else{
                $headers = '';
        }
        if($_POST['state']!='nope'){            
                $messageBody .= '<p>State: ' . $_POST['state'] . '</p>' . "\n";
                $messageBody .= '<br>' . "\n";
        }
        if($_POST['phone']!='nope'){            
                $messageBody .= '<p>Phone Number: ' . $_POST['phone'] . '</p>' . "\n";
                $messageBody .= '<br>' . "\n";
        }       
        if($_POST['fax']!='nope'){              
                $messageBody .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n";
                $messageBody .= '<br>' . "\n";
        }
        if($_POST['message']!='nope'){
                $messageBody .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n";
        }

        if($_POST["stripHTML"] == 'true'){
                $messageBody = strip_tags($messageBody);
        }

        try{
                if(!mail($owner_email, $subject, $messageBody, $headers)){
                        throw new Exception('mail failed');
                }else{
                        echo 'mail sent';
                }
        }catch(Exception $e){
                echo $e->getMessage() ."\n";
        }
?>

用于提交表格1的Btn->使用

name="formFirst"
并提交表格2的Btn->使用

name="formSecond"
和PHP代码检查

if(isset($_POST['formFirst'])){
//Your code for  1st Form submit.
}
else if (isset($_POST['formSecond'])){
//Your code for 2nd
}

使用TMForm,您需要为每个表单指定一个唯一的ID(将HTML中的
行更改为第一个表单的
,第二个表单的
。然后,您需要告诉TMForm查找这两个ID

要做到这一点,请一直转到TMForm.js文件的底部并替换

$(window).load(function(){
  $('#form').TMForm({
      ownerEmail:'#' 
  })
})

您没有发布任何CSS,但如果您使用的模板与我使用的模板类似,您可能会发现页面上的内容显示错误。这是因为form.CSS几乎所有内容都使用#form,而您只是将该ID更改为两个不同的内容

我找到的最简单的解决方案是用.tmform查找并替换css文件中的#form的所有实例

然后,在HTML中,使您的ID如下所示:

<form id="form" class="tmform">


第一个猜测是您给了两个表单相同的ID。嗨,如果我使用两个不同的ID,第一个联系人表单不起作用。您使用两个选择器初始化了吗?ID的定义必须是唯一的“使用两个选择器初始化”指的是什么?如何做?
$('#formID#1,#formID#2')。TMForm(..
谢谢你的回复。我尝试了你的解决方案,但这样没有任何表单起作用。可能是什么?jquery没有被激活,因为当我单击submit时,转到#@user3353259,然后激活jquery。难道你不能自己编写一些代码,而不是我做所有的勺子输入吗?
$(window).load(function(){
  $('#form').TMForm({
      ownerEmail:'#' 
  })
})
$(window).load(function(){
  $('#form1').TMForm({
      ownerEmail:'#' 
  })
})

$(window).load(function(){
  $('#form2').TMForm({
      ownerEmail:'#' 
  })
})
<form id="form" class="tmform">