部分表单不提交 [英] Part of form doesn't submit

查看:98
本文介绍了部分表单不提交的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理一个小型项目时遇到问题。

我有一个带有9个字段的HTML表单。如果我点击提交,它会发送一封包含所有表单数据的电子邮件。表格的一部分仅在选择相应的单选按钮时才显示。尽管这个工作很完美(为此使用了JQuery),但子表单中的输入字段不会被提交。其他输入字段工作得很好。这是我的代码:

HTML:

 <表单名称=contactFormid =contactFormmethod =postaction => 
< fieldset>
< div class =group>
< input name =groupNametype =textid =groupNameplaceholder =Groepsnaamvalue =
minLength =2
required />
< / div>
< div>
< input name =contactNametype =textid =contactNameplaceholder =Naam contactpersoon
value =minLength =2
required />
< / div>
< div>
< input name =contactEmailtype =emailid =contactEmailplaceholder =Email contactpersoon
value =
required />
< / div>
< div>
< input name =contactPhonetype =telid =contactPhone
placeholder =Telefoonnummer contactpersoonvalue =
required />
< / div>
< div>
< select name =amountMembersid =amountMembersrequired>
< option value =selected> Aantal groepsleden< / option>
< option value =2> 2< / option>
< option value =3> 3< / option>
< option value =4> 4< / option>
< option value =5> 5< / option>
< option value =6> 6< / option>
< / select>
< / div>
< div>
< textarea name =groupMembersid =groupMembersplaceholder =Groepsledenrows =10cols =50
required>< / textarea>
< / div>

< div> <! - 如果第一个rdb是select,则显示字段。其他人隐藏。 - >

< input type =radioonclick =displayForm(this)name =foodvalue =1> Ik wil me inschrijven
voor het pasta-buffet< br>
< input type =radioonclick =displayForm(this)name =foodvalue =2> Ik neem niet deel aan het
面食 - 自助餐< br>
< / div>
< div id =foodformstyle =display:none;>

< input name =volwassenenPortiestype =textid =volwassenplaceholder =Aantal volwassenen
value =
required />


< input name =kinderPortiestype =textid =kindplaceholder =Aantal kinderen(-12j)value =
required / >
< br>
< / div>
< div>
< button class =submitform>提交< / button>
< div id =submit-loader>
< div class =text-loader>正在发送...< / div>
< div class =s-loader>
< div class =bounce1>< / div>
< div class =bounce2>< / div>
< div class =bounce3>< / div>
< / div>
< / div>
< / div>
< / fieldset>
< / form> <! - 表格结束 - >

JQuery:

  function displayForm(c){
if(c.value ==1){
jQuery('#foodform')。fadeIn();
}
if(c.value ==2){
jQuery('#foodform')。fadeOut();
}
};

PHP:

 <?php 
$ siteOwnersEmail ='Myemail@website.be';
$ b $ if($ _ POST){
$ groupName = trim(stripslashes($ _ POST ['groupName']));
$ contactName = trim(stripslashes($ _ POST ['contactName']));
$ email = trim(stripslashes($ _ POST ['contactEmail']));
$ phone = trim(stripslashes($ _ POST ['contactPhone']));
$ amountMembers = trim(stripslashes($ _ POST ['amountMembers']));
$ groupMembers = trim(stripslashes($ _ POST ['groupMembers']));
$ food = trim(stripslashes($ _ POST ['food']));
$ volwassenen = trim(stripslashes($ _ POST ['volwassen']));
$ kinderen = trim(stripslashes($ _ POST ['kind']));

//设置消息
$ message。=Groepsnaam:。 $ groupName。 < br />;
$ message。=Naam contactpersoon:。 $ contactName。 < br />;
$ message。=email:。 $电子邮件。 < br />;
$ message。=telefoonnr:。 $手机。 < br />;
$ message。=Aantal groepsleden:。 $ amountMembers。 < br />;
$ message。=Namen groepsleden:。 $ groupMembers。 < br />;
$ message。=Eten 1 = ja,2 = nee:。 $食物。 < br />;
$ message。=Volwassenen porties:。 $ volwassenen。 < br />;
$ message。=亲爱的港口:。 $ kinderen。 < br />;
$ message。=< br /> -----< br />德泽电子邮件通过het inschrijvingsformulier来发送邮件。< br />;

// Set From:header
$ from = $ contactName。 < 。 $电子邮件。 > 中;

//电子邮件标题
$标题=From:。 $从。 \r\\\
;
$ headers。=回复:。 $电子邮件。 \r\\\
;
$ headers。=MIME-Version:1.0 \r\\\
;
$ headers。=Content-Type:text / html; charset = ISO-8859-1 \r\\\
;

$ b $ if(!$ error){
ini_set(sendmail_from,$ siteOwnersEmail); //用于Windows服务器
$ mail = mail($ siteOwnersEmail,$ subject,$ message,$ headers);

if($ mail){echoOK; }
else {echo出错了,请重试。; }
$ b $#}如果 - 没有验证错误

else {
//验证错误
}

有谁知道为什么foodform中的输入字段不提交?我一直在努力这一段时间。



预先感谢

Simon

解决方案

在您的PHP代码中尝试替换:

  $ volwassenen = trim(stripslashes($ _ POST [ 'volwassen'])); 
$ kinderen = trim(stripslashes($ _ POST ['kind']));

用这个:

  $ volwassenen = trim(stripslashes($ _ POST ['volwassenPorties'])); 
$ kinderen = trim(stripslashes($ _ POST ['kindPorties']));


I have a problem with a small project I'm working on.

I have a form in HTML with 9 fields. If I hit submit it sends an email with all the form data. A part of the form is only shown when the corresponding radiobutton is selected. Although this works perfect (used JQuery for this), the input fields in that 'subform' don't get submitted. The other input fields work just fine. This is my code:

HTML:

<form name="contactForm" id="contactForm" method="post" action="">
            <fieldset>
                <div class="group">
                    <input name="groupName" type="text" id="groupName" placeholder="Groepsnaam" value=""
                           minLength="2"
                           required/>
                </div>
                <div>
                    <input name="contactName" type="text" id="contactName" placeholder="Naam contactpersoon"
                           value="" minLength="2"
                           required/>
                </div>
                <div>
                    <input name="contactEmail" type="email" id="contactEmail" placeholder="Email contactpersoon"
                           value=""
                           required/>
                </div>
                <div>
                    <input name="contactPhone" type="tel" id="contactPhone"
                           placeholder="Telefoonnummer contactpersoon" value=""
                           required/>
                </div>
                <div>
                    <select name="amountMembers" id="amountMembers " required>
                        <option value="" selected>Aantal groepsleden</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                        <option value="4">4</option>
                        <option value="5">5</option>
                        <option value="6">6</option>
                    </select>
                </div>
                <div>
                    <textarea name="groupMembers" id="groupMembers" placeholder="Groepsleden" rows="10" cols="50"
                              required></textarea>
                </div>

                <div> <!-- If the first rdb is select, show fields. Else hide. -->

                    <input type="radio" onclick="displayForm(this)" name="food" value="1"> Ik wil me inschrijven
                    voor het pasta-buffet<br>
                    <input type="radio" onclick="displayForm(this)" name="food" value="2"> Ik neem niet deel aan het
                    pasta-buffet<br>
                </div>
                <div id="foodform" style="display:none;">

                    <input name="volwassenenPorties" type="text" id="volwassen" placeholder="Aantal volwassenen"
                           value=""
                           required/>


                    <input name="kinderPorties" type="text" id="kind" placeholder="Aantal kinderen (-12j) " value=""
                           required/>
                    <br>
                </div>
                <div>
                    <button class="submitform">Submit</button>
                    <div id="submit-loader">
                        <div class="text-loader">Sending...</div>
                        <div class="s-loader">
                            <div class="bounce1"></div>
                            <div class="bounce2"></div>
                            <div class="bounce3"></div>
                        </div>
                    </div>
                </div>
            </fieldset>
        </form> <!-- Form End -->

JQuery:

function displayForm(c) {
if (c.value == "1") {
    jQuery('#foodform').fadeIn();
}
if (c.value == "2") {
    jQuery('#foodform').fadeOut();
}
};

PHP:

<?php
$siteOwnersEmail = 'Myemail@website.be';

if($_POST) {
$groupName = trim(stripslashes($_POST['groupName']));
$contactName = trim(stripslashes($_POST['contactName']));
$email = trim(stripslashes($_POST['contactEmail']));
$phone = trim(stripslashes($_POST['contactPhone']));
$amountMembers = trim(stripslashes($_POST['amountMembers']));
$groupMembers = trim(stripslashes($_POST['groupMembers']));
$food = trim(stripslashes($_POST['food']));
$volwassenen = trim(stripslashes($_POST['volwassen']));
$kinderen = trim(stripslashes($_POST['kind']));

// Set Message
$message .= "Groepsnaam: " . $groupName . "<br />";
$message .= "Naam contactpersoon: " . $contactName . "<br />";
$message .= "email: " . $email . "<br />";
$message .= "telefoonnr: " . $phone . "<br />";
$message .= "Aantal groepsleden: " . $amountMembers . "<br />";
$message .= "Namen groepsleden: " . $groupMembers . "<br />";
$message .= "Eten 1=ja, 2=nee: " . $food . "<br />";
$message .= "Volwassenen porties: " . $volwassenen . "<br />";
$message .= "Kinder porties:  " . $kinderen . "<br />";
$message .= "<br /> ----- <br /> Deze email werd verstuurd via het inschrijvingsformulier. <br />";

// Set From: header
$from =  $contactName . " <" . $email . ">";

// Email Headers
$headers = "From: " . $from . "\r\n";
$headers .= "Reply-To: ". $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";


if (!$error) {
  ini_set("sendmail_from", $siteOwnersEmail); // for windows server
  $mail = mail($siteOwnersEmail, $subject, $message, $headers);

    if ($mail) { echo "OK"; }
  else { echo "Something went wrong. Please try again."; }

 } # end if - no validation error

 else {
 //there was a validation error
}

Does anyone know why the input fields inside the "foodform" dont submit? I've been struggling on this for a while now.

Thanks in advance

Simon

解决方案

Try replacing in your PHP code:

$volwassenen = trim(stripslashes($_POST['volwassen']));
$kinderen = trim(stripslashes($_POST['kind']));

with this:

$volwassenen = trim(stripslashes($_POST['volwassenPorties'])); 
$kinderen = trim(stripslashes($_POST['kindPorties']));

这篇关于部分表单不提交的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆