如何验证与java脚本的php表单,那是在我的网站的每一页

How to validate a php form with java script, that is on everypage of my site

本文关键字:我的 一页 网站 表单 php 验证 脚本 java 何验证      更新时间:2023-09-26

我遇到的问题是我试图让contact.php验证联系人表单,现在在我的网站的每个页面的底部。它工作得很好,只是验证一个页面,并有一个硬URL带他们回去。麻烦的代码是:

/* In case of no valid input go back  */
if ($p1==""||$p2==""||$p3==""||$p5==""||$n0!=0||$f0<7||$NL==0||$p7=="") {
    header($_SERVER['HTTP_REFERER'].$report); 
}else{$report='noerror';}

我也试过这个:

/* In case of no valid input go back  */
if ($p1==""||$p2==""||$p3==""||$p5==""||$n0!=0||$f0<7||$NL==0||$p7=="") {
    header($_SERVER['PHP_SELF'].$report); 
}else{$report='noerror';}

这是一个页面的原始代码:

/* In case of no valid input go back  */
if ($p1==""||$p2==""||$p3==""||$p5==""||$n0!=0||$f0<7||$NL==0||$p7=="") {
   header('Location:estimate_page.php?'.$report);
}else{$report='noerror';}

我可以为每个页脚有表单的页面创建一个新的"contact.php"页面,但如果我能让这个工作就太愚蠢了。任何想法

使用javascript/jQuery的思路是正确的——它将允许您在提交/更改页面之前捕获无效字段。更好的用户体验。只有当字段被验证时才提交。

这里有一个关于如何使用jQuery进行简单字段验证测试的链接:

jsFiddle演示

HTML:

One: <input type="text" id="f1"><br />
Two: <input type="text" id="f2"><br />
Three: <input type="text" id="f3"><br />
Four: <input type="text" id="f4"><br />
<br />
<input type="button" id="mybutt" value="Go" />
javascript/jQuery:

var chkFld, arrAll = {'One':'f1','Two':'f2','Three':'f3','Four':'f4'};
$('#mybutt').click(function() {
    var errMsg='', badFlds='', firstBad='';
    for(var key in arrAll){
        chkFld = '#'+arrAll[key];
        $(chkFld).removeClass('error');
        if ($(chkFld).val() ==''){
            $(chkFld).addClass('error');
            //alert('Please complete field ' + arrAll[key] );
            errMsg += '*' + key + ''n';
            if (firstBad=='') firstBad=chkFld;
        }
    }
    if (errMsg != '') {
        alert(errMsg);
        $(firstBad).focus();
    }
}); //END mybutt.click

注意上面的例子使用了jQuery,所以你必须引用jQ库(通常在头部标签中,像这样:)

<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>

编辑:

完整的HTML如下:

<?php
    //Any initial PHP code goes here
?>
<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script type="text/javascript">
            //javascript
        var chkFld, arrAll = {'One':'f1','Two':'f2','Three':'f3','Four':'f4'};
        $(document).ready(function() {
                $('#mybutt').click(function() {
                    var errMsg='', badFlds='', firstBad='';
                    for(var key in arrAll){
                        chkFld = '#'+arrAll[key];
                        $(chkFld).removeClass('error');
                        if ($(chkFld).val() ==''){
                            $(chkFld).addClass('error');
                            //alert('Please complete field ' + arrAll[key] );
                            errMsg += '*' + key + ''n';
                            if (firstBad=='') firstBad=chkFld;
                        }
                    }
                    if (errMsg != '') {
                        alert(errMsg);
                        $(firstBad).focus();
                        return false;
                    }
                    //If it gets to here, it passed validation
                        $('#yourForm').submit();
                }); //END mybutt.click()
            }); //END $(document).ready()
        </script>
    </head>
<body>
    <form id="yourForm">
        One: <input type="text" id="f1" /><br />
        Two: <input type="text" id="f2" /><br />
        Three: <input type="text" id="f3" /><br />
        Four: <input type="text" id="f4" /><br />
    </form>
    <input type="button" id="mybutt" value="Click Me">
</body>
</html>
注意,在使用上述场景时,在表单提交之前,没有PHP代码执行,使用手动$('#yourForm').submit();语句。