简体   繁体   English

Web表单字段数据未传递给PHP

[英]web form field data not passing to php

I'm learning, trying to create a simple web form, validate the form data, and pass the data to a php file. 我正在学习,试图创建一个简单的Web表单,验证表单数据,然后将数据传递给php文件。

After all of the field values are validated, they are not being passed to the php file. 验证所有字段值之后,它们不会被传递到php文件。

<form action="/xxxxx.php" method="post" name="registration" onsubmit="return formValidation();">

I've change the form name to anything else... 我已将表单名称更改为其他名称...

<form action="/xxxxx.php" method="post" name="anythingelse" onsubmit="return formValidation();">

...the form works (without validation) and the field values are being passed to the php file. ...表单有效(未经验证),并且字段值被传递到php文件。 I'm receiving the completed form, so I know without validation the web form is working correctly. 我收到的是填写完毕的表格,所以我知道未经验证的Web表格可以正常工作。

So it would appear as though there is something wrong with the validation, IE the function(s) are returning false even after all functions have passed validation and presumably returned true. 因此,看来好像验证存在问题,即使所有函数都通过了验证并且可能返回了true,IE函数也会返回false。

Or something else is wrong. 或其他错误。 I don't understand what's wrong? 我不明白怎么了? I'd appreciate any help. 我将不胜感激。

Here's the code. 这是代码。

    <script type="text/javascript">
        function formValidation() {
            var uname = document.registration.username;
            var uadd = document.registration.city;
            var ucountry = document.registration.country;
            var uzip = document.registration.zip;
            var uemail = document.registration.email;
            var uphone = document.registration.phone;
            {
                if (allLetter(uname)) {
                    if (alphanumeric(uadd)) {
                        if (countryselect(ucountry)) {
                            if (allnumeric(uzip)) {
                                if (ValidateEmail(uemail)) {
                                    if (validatePhone(uphone)) {
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return false;

        }

        function validatePhone(uphone) {
            var letters = /^[0-9a-zA-Z-]+$/;
            if (uphone.value.match(letters)) {
                return true;
            }
            else {
                alert('Phone Number [Required]: Please enter your phone number (use this format, xxx-xxx-xxxx)');
                uphone.focus();
                return false;
            }
        }
        function allLetter(uname) {
            var letters = /^[A-Za-z ]+$/;
            if (uname.value.match(letters)) {
                return true;
            }
            else {
                alert('Full Name [Required]: Please enter your full name (alphabet characters only)');
                uname.focus();
                return false;
            }
        }
        function alphanumeric(uadd) {
            var letters = /^[0-9a-zA-Z ]+$/;
            if (uadd.value.match(letters)) {
                return true;
            }
            else {
                alert('City [Required]: Please enter your city (alphabet characters only)');
                uadd.focus();
                return false;
            }
        }
        function countryselect(ucountry) {
            if (ucountry.value == "Default") {
                alert('State [Required]: Please select your State from the drop down list');
                ucountry.focus();
                return false;
            }
            else {
                return true;
            }
        }
        function allnumeric(uzip) {
            var numbers = /^[0-9]+$/;
            if (uzip.value.match(numbers)) {
                return true;
            }
            else {
                alert('ZIP code [Required]: Please enter your Zip Code (numbers only, use this format xxxxx)');
                uzip.focus();
                return false;
            }
        }
        function ValidateEmail(uemail) {
            var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
            if (uemail.value.match(mailformat)) {
                return true;
            }
            else {
                alert('Email Address [Required]: You have entered an invalid email address. Please verify and correct your email address.');
                uemail.focus();
                return false;
            }
        }

    </script>
    <form name="registration" action="/xxxxxx.php" method="post" onsubmit="return formValidation();">
    <input type="hidden" name="subject" value="xxxxx - Contact" />
    <input type="hidden" name="redirect" value="confirmation.html" />
    <div>
        <strong>Email Address [Required]:</strong>
        <input type="text" name="email" size="50" title="Please enter your email address" />
    </div>
    <div>
        <span><strong>Company Name [Optional]:</strong></span> <span>
            <input type="text" id="companyName" name="companyName" size="50" title="Please enter your company name" /></span>
    </div>
    <div>
        <span><strong>Full Name:</strong></span> <span>
            <input type="text" id="username" name="username" size="30" title="Please enter your full name" /></span>
    </div>
    <div>
        <span><strong>Phone Number:</strong></span> <span>
            <input type="text" id="phone" name="phone" size="17" title="Please enter your phone number" /></span>
        <br />
        <span><strong>Phone Ext. [Optional]:</strong></span> <span>
            <input type="text" id="phoneExtn" name="phoneExtn" size="10" title="Please enter your phone extension" /></span>
    </div>
    <div>
        <span><strong>City:</strong></span> <span>
            <input type="text" id="city" name="city" size="25" title="Please enter your city" /></span>
        <span><strong>State:</strong></span> <span>
            <select id="country" name="country" title="Please select your state from the drop down list">
                <option selected="" value="Default">Select a State</option>
                <option value="AL">Alabama</option>
                <option value="AK">Alaska</option>
                <option value="AZ">Arizona</option>
                <option value="AR">Arkansas</option>
                <option value="CA">California</option>
                <option value="CO">Colorado</option>
                <option value="CT">Connecticut</option>
                <option value="DE">Delaware</option>
                <option value="DC">District of Columbia</option>
                <option value="FL">Florida</option>
                <option value="GA">Georgia</option>
                <option value="GU">Guam</option>
                <option value="HI">Hawaii</option>
                <option value="ID">Idaho</option>
                <option value="IL">Illinois</option>
                <option value="IN">Indiana</option>
                <option value="IA">Iowa</option>
                <option value="KS">Kansas</option>
                <option value="KY">Kentucky</option>
                <option value="LA">Louisiana</option>
                <option value="ME">Maine</option>
                <option value="MD">Maryland</option>
                <option value="MA">Massachusetts</option>
                <option value="MI">Michigan</option>
                <option value="MN">Minnesota</option>
                <option value="MS">Mississippi</option>
                <option value="MO">Missouri</option>
                <option value="MT">Montana</option>
                <option value="NE">Nebraska</option>
                <option value="NV">Nevada</option>
                <option value="NH">New Hampshire</option>
                <option value="NJ">New Jersey</option>
                <option value="NM">New Mexico</option>
                <option value="NY">New York</option>
                <option value="NC">North Carolina</option>
                <option value="ND">North Dakota</option>
                <option value="OH">Ohio</option>
                <option value="OK">Oklahoma</option>
                <option value="OR">Oregon</option>
                <option value="PA">Pennsylvania</option>
                <option value="PR">Puerto Rico</option>
                <option value="RI">Rhode Island</option>
                <option value="SC">South Carolina</option>
                <option value="SD">South Dokota</option>
                <option value="TN">Tennessee</option>
                <option value="TX">Texas</option>
                <option value="UT">Utah</option>
                <option value="VT">Vermont</option>
                <option value="VI">Virgin Islands</option>
                <option value="VA">Virginia</option>
                <option value="WA">Washington</option>
                <option value="WV">West Virginia</option>
                <option value="WI">Wisconsin</option>
                <option value="WY">Wyoming</option>
            </select></span>
    </div>
    <div>
        <span><strong>Zip Code:</strong></span> <span>
            <input type="text" id="zip" name="zip" size="10" title="Please enter your zip code" /></span>
    </div>
    <br />
    <div id="qsadditionalRequirementsQuestion">
        <strong>Briefly describe your purpose for contacting us today:</strong>
    </div>
    <div>
        <textarea name="PurposeForContact" rows="5" cols="60"></textarea>
    </div>
    <div>
        <input type="submit" name="submit" value="Submit" />
    </div>
    </form>

Your main if statements are contained within random opening and closing braces. 您的主要if语句包含在随机的右括号和右括号中。

Try removing those random braces, adding return true; 尝试删除那些随机括号,添加return true; inside of your last nested if statement, and containing the return false; 在最后一个嵌套的if语句中,并且包含return false; within an elseif after the closing braces of the if statements if语句的elseif括号后的elseif

EDIT: 编辑:

if (allLetter(uname)) {
    if (alphanumeric(uadd)) {
       if (countryselect(ucountry)) {
        if (allnumeric(uzip)) {
            if (ValidateEmail(uemail)) {
                if (validatePhone(uphone)) {
                    return true;
                }
                else {
                    return false;
                }
            }
            else {
                return false;
            }
        }
        else {
            return false;
        }
    }
    else {
        return false;
    }
}
else {
    return false;
}
}
else {
return false;
}

There are much, much better ways of doing this, but without changing what you've already got too much, try the above. 有很多更好的方法可以做到这一点,但是在不改变已经有太多东西的情况下,尝试上面的方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM