2011-09-06 60 views
0

我有一個帶有一些字段的表單...我只想顯示一條錯誤信息,如果試圖填充表格已被提交(即提交按鈕被擊中)PHP:如果一個表單中的某個字段沒有被填充,那麼只有在沒有javascript的情況下才會填充字段

if (fields are empty){ 

$_POST['fields_empty']= "error message"; 
} 

似乎不起作用...即(也許並不奇怪)錯誤消息顯示在用戶甚至嘗試填充表單之前...因爲此時表單爲空...我怎樣才能防止這種行爲(不使用javascript)

回答

0

通常,當字段是空的表單變量不會通過POST,例如,如果您有「用戶名」字段isset($ _ POST [「username」])將返回false。

+0

是否確定? –

1

在窗體中添加一個隱藏字段相似的步驟與價值類2然後用這個: if(isset($_POST['step']) && $_POST['step'] == 2 &&empty($_POST['field'])) { error_msg }

0
<form method='post'> 
<input type='text' name='username' value='' /> 
<input type='submit' name='sned' value='Send' /> 
</form> 

PHP:

<?php 
if (isset($_POST['send'])) 
{ 
    //form was submit 
    if (empty($_POST['username'])) 
    { 
     //error - do something 
    } 
    // if you need check only for empty field better to use 
    // if (trim($_POST['username']) === '') {// error} 
} 

?> 
+0

表格中沒有任何動作,請向他說清楚。 – Usman

0

你不能沒有擊中按鈕使它或使用JavaScript。

幸運的是,沒有任何理由這樣做沒有擊中按鈕,所以,它的確定擊出了一些

代碼

<? 
if ($_SERVER['REQUEST_METHOD']=='POST') { 

    $err = array(); 
    //performing all validations and raising corresponding errors 
    if (empty($_POST['name']) $err[] = "Username field is required"; 
    if (empty($_POST['text']) $err[] = "Comments field is required"; 

    if (!$err) {// if no errors - 
    // saving data 
    // ... 
    header("Location: ".$_SERVER['PHP_SELF']);// and then redirect 
    exit; 
    } else { 
    // all field values should be escaped according to HTML standard 
    foreach ($_POST as $key => $val) { 
     $form[$key] = htmlspecialchars($val); 
    } 
} else { 
    $form['name'] = $form['comments'] = ''; 
} 
include 'form.tpl.php'; 
?> 

模板

<? if ($err): ?> 
    <? foreach($err as $e): ?> 
<div class="err"><?=$e?></div> 
    <? endforeach ?> 
<? endif ?> 
<form method="POST"> 
    <input type="text" name="name" value="<?=$form['name']?>"> 
    <textarea name="comments"><?=$form['comments']?></textarea> 
    <input type="submit"> 
</form> 
相關問題