2013-03-19 72 views
2

我是PHP和JavaScript的新手。我不能验证表单,如果表单输入字段是正确的,然后将其发送到PHP外部脚本。我已经试过这样的事情:PHP/JavaScript表单验证?

<head> 
<script type="text/javascript"> 
    function Validate(){ 
    var x=document.forms["form"]["firstname"].value; 
    var y=document.forms["form"]["lastname"].value; 
    var z=document.forms["form"]["age"].value; 
    if(x==null || x=="") { 
     alert("Input name!"); 
    } else if(y==null || y=="") { 
     alert("Input surname!"); 
    } else if(z==null || z=="") { 
     alert("Input age!"); 
    } else { 
    // IS IT POSSIBLE TO SEND FORM HERE FORM VARIABLES TO PHP SCRIPT? 
    } 
    } 
</script> 
</head> 
<body> 

    <form name="forma" action="validate.php" method="post" onSubmit="return Validate()"> 
    Firstname: <input type="text" name="firstname"> 
    Lastname: <input type="text" name="lastname"> 
    Age: <input type="text" name="age"> 
    <input type="submit"> 
    </form> 
</body> 
</html> 
+0

您的警报后进入:'返回false;'。这样表格将不会被提交。另外请确保在你的php脚本中再次检查变量。 – 2013-03-19 22:22:23

+0

你可以跳过这些空检查 – 2013-03-19 22:26:08

回答

1

既然你不是从你的函数返回false,形式应该被提交反正。你可以通过让你的validate()函数返回false来阻止它被提交。

+0

阿哈我忘了写返回false。它现在工作正常,非常感谢:) – 2013-03-19 22:33:32

+0

那么你会接受这个答案呢? – 2013-03-20 11:10:58

1

您的代码看起来是正确的,但您可能希望return false未能阻止表单提交。不返回false时,表单将继续提交。

我也想你大概意思命名形式formforma

+0

阿哈我忘了写回报错误。它现在可以正常工作,非常感谢:) – 2013-03-19 22:33:48

1

您应该验证输入服务器端(PHP),即使你做到了客户端(JavaScript)。相当在脚本的开头

您在validate.php上$_POST检查做到这一点

if (isset($_POST)) { // form has been sent 

    if (!isset($_POST['firstname']) || strlen($_POST['firstname'])==0) { // no entry 

     $e['firstname']='please enter a firstname!'; // prepare error-msg 
    } 

    if (!isset($e)) { // no error, continue handling the data 

     // write data to database etc. 
    } 
} 

// in your form... 

if (isset($e)) echo "there were errors: ". implode(',',$e); 
+0

我已经做到了:) tnx – 2013-03-19 22:35:33

1

你需要把这个代码:

function Validate(){ 
var x=document.forms["form"]["firstname"].value; 
var y=document.forms["form"]["lastname"].value; 
var z=document.forms["form"]["age"].value; 
if(x==null || x=="") { 
    alert("Input name!"); 
    return false; 
} else if(y==null || y=="") { 
    alert("Input surname!"); 
    return false; 
} else if(z==null || z=="") { 
    alert("Input age!"); 
    return false; 
} else { 
    return true; 
} 
}