表格不能始终正确提交值

时间:2017-07-12 20:06:36

标签: javascript php jquery wordpress forms

大家好,我对我创建的代码有疑问。它是一个下拉选择依赖的形式,所以当你选择一个下拉时,文本框/输入会发生变化。

现在我在大部分时间都在努力,接下来我会解释一下。我有三个文件:form.php,JavaScript文件和formprocess.php文件。我在WordPress上有这个表格,就像我说的那样我大部分都在工作。下拉选项是新的和使用如果您选择使用它直接使用的形式如果您选择新的它会带来另一个选择来选择租赁或购买,并根据您选择的那个将显示不同的表格。现在每个持有USED,LEASED和PURCHASED的div都具有相同的值,除了两个或三个不同的值。

因此,当我提交带有USED选择的表单时,我会收到填写了所有字段的电子邮件,但是当我选择租用或购买时,我没有填写任何字段,有时我会在其中填写一些字段发送电子邮件时。以下是下面的文件我祈祷有人可以看到我不是的东西。

form.php(HTML FORM)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Offer Submission Form</title>
    <link rel="stylesheet" type="text/css" href="css/mystyle.css">
    <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <script type="text/javascript" src="js/newForm.js"></script>
  </head>

<body>
 <div class="form-style-10">

  <div class="inner-wrap">

   <form action="" method="post">

    <label>Dealership Name:<em class="required-star">*</em></label><input id="dealerName" name="dealerName" type="text" placeholder="Dealership Name" style="background-color: white;"/>

    <label>Which Marketing Medium?<em class="required-star">*</em></label><select id="market" type="select" name="marketing">
        <option id="market1" value="Facebook">Facebook</option>
        <option id="market2" value="Website Banner">Website Banner</option>
        <option id="market3" value="Radio">Radio</option>
        <option id="market4" value="TV">TV</option>
        <option id="market5" value="Email">Email</option>
        <option id="market6" value="Direct Mail">Direct Mail</option>
        <option id="market7" value="All Channels">All Channels</option>
    </select>

    <label>Offer Type?</label><select id="newused" type="select" name="offerType">
        <option id="option_1" value="New">New</option>
        <option id="option_2" value="Used">Used</option>
    </select>

<div id="new" style="display:none;">
    <label>Type of Purchase?</label><select id="newPick" type="select" name="typeOfPurchase">
        <option id="newPick_1" value="Purchased">Purchased</option>
        <option id="newPick_2" value="Leased">Leased</option>
    </select>
</div>

    <!--This div section is for when client select puchased as their new opiton....--->
    <div id="purchased" style="display:none;">
        <label>Start Date:<em class="required-star">*</em></label><input id="pur_startDate" name="startDate" type="text" placeholder="01/01/2012" style="background-color: white;"/>
        <label>End Date:<em class="required-star">*</em></label><input id="pur_endDate" name="endDate" type="text" placeholder="05/07/2015" style="background-color: white;"/>
        <label>Year:<em class="required-star">*</em></label><input id="pur_vehicleYear" name="yearOfVehicle" type="text" placeholder="Vehicle Year" style="background-color: white;"/>
        <label>Make:<em class="required-star">*</em></label><input id="pur_make" name="makeOfVehicle" type="text" placeholder="Make" style="background-color: white;"/>
        <label>Model:<em class="required-star">*</em></label><input id="pur_model" name="modelOfVehicle" type="text" placeholder="Model" style="background-color: white;"/>
        <label>Trim:<em class="required-star">*</em></label><input id="pur_trim" name="trimOfVehicle" type="text" placeholder="Trim of Vehicle" style="background-color: white;"/>
        <label>Model #:<em class="required-star">*</em></label><input id="pur_input_5" name="modelNumber" type="text" placeholder="14325" style="background-color: white;"/>
        <label>Stock #:<em class="required-star">*</em></label><input id="pur_input_5" name="stockNumber" type="text" placeholder="1234" style="background-color: white;"/>
        <label>MSRP:<em class="required-star">*</em></label><input id="pur_input_5" name="msrpNumber" type="text" placeholder="15995" style="background-color: white;"/>
        <label>Selling Price:<em class="required-star">*</em></label><input id="pur_input_5" name="sellingPrice" type="text" placeholder="12895" style="background-color: white;"/>
        <label>Down Payment:<em class="required-star">*</em></label><input id="pur_input_5" name="downPayment" type="text" placeholder="1000" style="background-color: white;"/>
        <label>$XXX/ Monthly Payment:<em class="required-star">*</em></label><input id="pur_input_5" name="monthlyPayment" type="text" placeholder="$198" style="background-color: white;"/>
        <label>Last 6 of VIN:<em class="required-star">*</em></label><input id="pur_input_5" name="lastVin" type="text" placeholder="123456" style="background-color: white;"/>
        <label>Rebate:</label><input id="pur_input_5" name="rebateInfo" type="text" placeholder="Rebate on Vehicle" style="background-color: white;"/>
        <label>APR:<em class="required-star">*</em></label><input id="pur_input_5" name="aprAmount" type="text" placeholder="ARP on Vehicle" style="background-color: white;"/>
        <label>Term:<em class="required-star">*</em></label><input id="pur_input_5" name="termOfVehicle" type="text" placeholder="Residual Payment on Vehicle" style="background-color: white;"/>
        <label>Other Notes(Rebate Info, Special Details etc):</label> <textarea id="pur_textArea" name="msg" placeholder="Notes" style="background-color: white;" rows=2></textarea>
    </div>

    <!--This div section is for when client select leased as their new opiton....--->
    <div id="leased" style="display:none;">
        <label>Start Date:<em class="required-star">*</em></label><input id="lsd_startDate" name="startDate" type="text" placeholder="01/01/2012" style="background-color: white;"/>
        <label>End Date:<em class="required-star">*</em></label><input id="lsd_endDate" name="endDate" type="text" placeholder="05/07/2015" style="background-color: white;"/>
        <label>Year:<em class="required-star">*</em></label><input id="lsd_vehicleYear" name="yearOfVehicle" type="text" placeholder="Vehicle Year" style="background-color: white;"/>
        <label>Make:<em class="required-star">*</em></label><input id="lsd_make" name="makeOfVehicle" type="text" placeholder="Make" style="background-color: white;"/>
        <label>Model:<em class="required-star">*</em></label><input id="lsd_model" name="modelOfVehicle" type="text" placeholder="Model" style="background-color: white;"/>
        <label>Trim:<em class="required-star">*</em></label><input id="lsd_trim" name="trimOfVehicle" type="text" placeholder="Trim of Vehicle" style="background-color: white;"/>
        <label>Model #:<em class="required-star">*</em></label><input id="lsd_model#" name="modelNumber" type="text" placeholder="14325" style="background-color: white;"/>
        <label>Stock #:<em class="required-star">*</em></label><input id="lsd_stock#" name="stockNumber" type="text" placeholder="1234" style="background-color: white;"/>
        <label>MSRP:<em class="required-star">*</em></label><input id="lsd_msrp" name="msrpNumber" type="text" placeholder="$15,995" style="background-color: white;"/>
        <label>Selling Price:<em class="required-star">*</em></label><input id="lsd_selling_price" name="sellingPrice" type="text" placeholder="12895" style="background-color: white;"/>
        <label>Down Payment:<em class="required-star">*</em></label><input id="lsd_down_payment" name="downPayment" type="text" placeholder="1000" style="background-color: white;"/>
        <label>$XXX/ Monthly Payment:<em class="required-star">*</em></label><input id="lsd_monthly_payment" name="monthlyPayment" type="text" placeholder="198" style="background-color: white;"/>
        <label>Last 6 of VIN:<em class="required-star">*</em></label><input id="lsd_vin" name="lastVin" type="text" placeholder="123456" style="background-color: white;"/>
        <label>Rebate:</label><input id="lsd_rebate" name="rebateInfo" type="text" placeholder="Rebate on Vehicle" style="background-color: white;"/>
        <label>Term:<em class="required-star">*</em></label><input id="lsd_term" name="termOfVehicle" type="text" placeholder="ARP on Vehicle" style="background-color: white;"/>
        <label>Residual Value:<em class="required-star">*</em></label><input id="lsd_residual_value" name="residualValue" type="text" placeholder="Residual Payment on Vehicle" style="background-color: white;"/>
        <label>Miles Per Year:<em class="required-star">*</em></label><input id="lsd_miles_year" name="milesPerYear" type="text" placeholder="Residual Payment on Vehicle" style="background-color: white;"/>
        <label>Other Notes(Rebate Info, Special Details etc):</label> <textarea id="lsd_textArea" name="msg" placeholder="Notes" style="background-color: white;" rows=2></textarea>
    </div>

    <!-- IF users picks USED it will go to this section of the form...-->
    <div id="used" style="display:none;">
        <label>Start Date:<em class="required-star">*</em></label><input id="fin_startDate" name="startDate" type="text" placeholder="01/01/2012" style="background-color: white;"/>
        <label>End Date:<em class="required-star">*</em></label><input id="fin_endDate" name="endDate" type="text" placeholder="05/07/2015" style="background-color: white;"/>
        <label>Year:<em class="required-star">*</em></label><input id="fin_vehicleYear" name="yearOfVehicle" type="text" placeholder="Vehicle Year" style="background-color: white;"/>
        <label>Make:<em class="required-star">*</em></label><input id="fin_make" name="makeOfVehicle" type="text" placeholder="Make" style="background-color: white;"/>
        <label>Model:<em class="required-star">*</em></label><input id="fin_model" name="modelOfVehicle" type="text" placeholder="Model" style="background-color: white;"/>
        <label>Trim:</label><input id="fin_trim" name="trimOfVehicle" type="text" placeholder="Trim of Vehicle" style="background-color: white;"/>
        <label>Stock #:<em class="required-star">*</em></label><input id="fin_input_5" name="stockNumber" type="text" placeholder="1234" style="background-color: white;"/>
        <label>Selling Price:<em class="required-star">*</em></label><input id="fin_input_5" name="sellingPrice" type="text" placeholder="12895" style="background-color: white;"/>
        <label>Down Payment:<em class="required-star">*</em></label><input id="fin_input_5" name="downPayment" type="text" placeholder="1000" style="background-color: white;"/>
        <label>APR:<em class="required-star">*</em></label><input id="fin_input_5" name="aprAmount" type="text" placeholder="ARP on Vehicle" style="background-color: white;"/>
        <label>Term:<em class="required-star">*</em></label><input id="used_term" name="termOfVehicle" type="text" placeholder="" style="background-color: white;"/>
        <label>Other Notes(Rebate Info, Special Details etc):</label><textarea id="fin_textArea" name="msg" placeholder="Notes" style="background-color: white;" rows=2></textarea>
    </div>

        <div class="button-section"><br />
            <input type="submit" name="submit" value="Submit Offer" />
        </div>


</form> 
</body>
  </div>
</div>
</html>

form.js(JavaScript FILE)

$(document).ready(function() {
$select = $('#newused');
$('#newused').on('change',function(){

    if($(this).val() == "New"){
        if($('#new').is(":hidden")){
            $('#new').show();
            $('#purchased').show();
            $('#leased').show();
        }
        else{
            $('#used').hide();
            }
    }

    if($(this).val() == "Used"){
        if($('#used').is(":hidden")){
            $('#used').show();
        }
        else{
           $('#new').hide();
           $('#leased').hide(); 
           $('#purchased').hide();
        }
    }

});
    });

$(document).ready(function() {
$select = $('#newPick');
$('#newPick').on('change',function(){

    if($(this).val() == "Purchased"){
        if($('#purchased').is(":hidden")){
            $('#purchased').show();
        }
        else{        
            $('#leased').hide(); 
            $('#used').hide();
        }
    }

    if($(this).val() == "Leased"){
        if($('#leased').is(":hidden")){
            $('#leased').show();
        }
        else{        
            $('#purchased').hide(); 
            $('#used').hide();
        }
    }

    });
    });

formprocess.php(PHP文件)

<?php 

//THIS SECTION IS FOR WHEN THE PURCHASED SECTION OF THE FORM IS FILLED OUT..........////        
        if(isset($_POST["purchasedSubmit"]))
        {

            // Checking For Blank Fields....
            if($_POST['dealerName']=="")
                { 
?>
                    <script type="text/javascript">
                        alert("Please complete the text marked with an *."); //java script telling user to fill in all required fields..
                    </script>
<?php
                }

//THIS IS THE INFO THAT WILL BE SENT TO INDIVIDUALS IN THE EMAIL SECTION BELOW AS LONG AS ALL THE REQUIRED FIELDS ARE FILLED IN.....//////              
        else{

            $offer = $_POST['offerType'];
            $typeOfPurchase = $_POST['typeOfPurchase'];
            $marketing = $_POST['marketing'];
            $dealerName = $_POST['dealerName'];
            $startDate = $_POST['startDate'];
            $endDate = $_POST['endDate'];
            $vehicleYear = $_POST['yearOfVehicle'];
            $vehicleMake = $_POST['makeOfVehicle'];
            $vehicleModel = $_POST['modelOfVehicle'];
            $vehicleTrim = $_POST['trimOfVehicle'];
            $modelNumber = $_POST['modelNumber'];
            $stockNumber = $_POST['stockNumber'];
            $msrp = $_POST['msrpNumber'];
            $sellingPrice = $_POST['sellingPrice'];
            $downPayment = $_POST['downPayment'];
            $monthlyPayment = $_POST['monthlyPayment'];
            $lastVin = $_POST['lastVin'];
            $aprAmount = $_POST['aprAmount'];
            $vehicleTerm = $_POST['termOfVehicle'];
            $rebate = $_POST['rebateInfo'];
            $message = $_POST['msg'];
            $message = wordwrap($message, 70);

            $msrpAmount = number_format($msrp, 2, '.', ',')
            $sellPrice = number_format($sellingPrice, 2, '.', ',')
            $dwnPayment = number_format($downPayment, 2, '.', ',')
            $monthPayment = number_format($monthlyPayment, 2, '.', ',')
            $apr = number_format($aprAmount, 2, '.', ',')
            $rebateAmount = number_format($rebate, 2, '.', ',')

            $form_content = 
            "What Type of Offer: $offer
            If your purhcase was new what was your type of purchase: $typeOfPurchase
            Which Marketing Medium: $marketing
            Dealership Name: $dealerName
            Start Date: $startDate
            End Date: $endDate
            Year of Vehicle: $vehicleYear
            Make of Vehicle: $vehicleMake
            Model of Vehicle: $vehicleModel
            Trim of Vehicle: $vehicleTrim
            Model #: $modelNumber 
            Stock #: $stockNumber
            MSRP: $msrpAmount
            Vehicle Selling Price: $sellPrice
            Down Payment on Vehicle: $dwnPayment
            '$'XXX/ Monthly Payment: $monthPayment
            Last 6 of VIN: $lastVin
            Vehicle Rebate: $rebateAmount
            Vehicle APR: $apr
            Other Notes (Rebate Info, Special Details etc): $message";

            $email_subject = "Online Offer Submission Form";

            //THIS IS THE ARRAY THAT WILL HOLD EVERYONE THAT WILL GET THE EMAIL....//////
            $arrEmail = array('Jonathan <myemail@myemail.com>');



                foreach($arrEmail as $key => $email_to)
                mail($email_to, $email_subject, $form_content);

        header('http://www.directionwebsite.com');
        }
        }
        ?>

当我提交表格时,选中使用的下拉选项是我得到的结果,请记住我将任何内容粘贴到字段中以便快速导致现在没有验证。下面没有任何内容的空字段:半冒号是不发送任何值的空字段,但是,使用所选择的值,这些值可能无论如何都没有存储。它是购买和租赁的新选择,我遇到了麻烦。

What Type of Offer: Used
                        If your purhcase was new what was your type of purchase: -1
                        Which Marketing Medium: All_Channels
                        Dealership Name: duh duh duh
                        Start Date: 05/07/1983
                        End Date: 03-11-2017
                        Year of Vehicle: 1983
                        Make of Vehicle: Ford
                        Model of Vehicle: Ford
                        Trim of Vehicle: Ford
                        Model #:
                        Stock #: 12345
                        MSRP:$
                        Vehicle Selling Price:$40,000.00
                        Down Payment on Vehicle:$ 4,000.00
                        '$'XXX/ Monthly Payment:$
                        Last 6 of VIN:
                        Vehicle Rebate:$
                        Residual Value:$
                        Vehicle APR:$175.00
                        Miles Per Year:
                        Other Notes (Rebate Info, Special Details etc): fffffffffffffffffffffffffffrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

现在,当我从选择中选择新的时,会出现另一个选择下拉列表,其中有两个选择:LEASED或PURCHASED,这是我从这两个选项得到的结果。下面的字段在半冒号后面没有任何内容:是空字段。

What Type of Offer: New
                        If your purhcase was new what was your type of purchase: Purchased
                        Which Marketing Medium: Facebook
                        Dealership Name: new purchased newest try
                        Start Date:
                        End Date:
                        Year of Vehicle:
                        Make of Vehicle:
                        Model of Vehicle:
                        Trim of Vehicle:
                        Model #:
                        Stock #:
                        MSRP:$
                        Vehicle Selling Price:$
                        Down Payment on Vehicle:$
                        '$'XXX/ Monthly Payment:$
                        Last 6 of VIN:
                        Vehicle Rebate:$
                        Residual Value:$


                        Vehicle APR:$
                        Miles Per Year:
                        Other Notes (Rebate Info, Special Details etc):

JFIDDLE

1 个答案:

答案 0 :(得分:1)

问题

由于您在同一表单中有多个具有相同name属性的输入,因此会覆盖值。

可能的解决方案

  • 为每个输入类型指定唯一的名称值
  • 将每个实例放置在自己的表单中,并显示和隐藏整个表单
  • 通过Ajax提交仅序列化可见的值
  • 使用方括号表示法将值推送到数组,此处为example