2013-03-19 68 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; 
} 
}