Rabu, 26 Agustus 2015

Pemrograman Web Cara membuat Pesan Error yang Praktis



Dalam membuat halaman pemrosesan form, sebaiknya Anda tidak memberikan pekerjaan ulang kepada user. Sebagai contoh, ketika user hanya melakukan kesalahan terhadap dua input, seharusnya input yang lain akan tetap ada dan nilainya tidak berubah.

Normalnya, pada saat ada satu atau beberapa input yang tidak valid, halaman form akan dikembalikan dalam keadaan kosong semua. Ini tentu kurang efektif dan efisien sehingga kita harus menginputkan ulang semua filed. Maka dari itu perlu mencari solusi yang lebih baik. Misalnya, dengan memberikan warna font mencolok pada field yang tidak valid, Baca: cara memeriksa input user, atau meletakkan pesan error atau pesan kesalahan di sebelah field terkait.



?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<br>
<!--?php<br /-->
$page = $_SERVER['PHP_SELF'];<br>
/* Fungsi untuk menampilkan form, jika ada error <br>
* atau ketika form di-load pertama kali<br>
*/<br>
function print_form() {<br>
    global $page, $error, $print_again, $_POST;<br>
    $fields = array("tgl" => "text",<br>
                "job" => "text", "email" => "text");<br>
    $labels = array("tgl" => "Tgl Lahir* ",<br>
                "job" => "Pekerjaan ",<br>
                "email" => "Email* ");<br>
?><br>
<form action="<?=$page; ?>" method="post"><br>
<br>
<!--?php<br /-->
if ($print_again){ ?><br>
    Koreksi kembali field berwarna <span class="error">merah</span><br>
<!--?php<br /-->
    } else{<br>
    echo "Keterangan: <small>(* = wajib di isi)</small>";<br>
}<br>
?><br>
<br>
<br>
foreach ($fields as $key => $value) { <br>
?><br><br><br><br><br><br><br><br><br><table>
<!--?php<br /-->
<tbody><tr>
<td> <!--?php error_flag($error, $key); ?--><br>
<!--?=$labels[$key]?--> </td>
<td><input type="<?=$value; ?>" name="<?=$key;" ?="">"<br>
Value = "<!--? echo @$_POST[$key]; ?-->"> </td>
</tr>
<!--?php } ?-->
<tr>
    <td colspan="3" align="center"><br>
    <input type="submit" name="oke" value="Submit"></td>
</tr>
</tbody></table><br>
</form><br>
<!--?php<br /-->
}<br>
<br>
function error_flag($error, $field) {<br>
    if ($error[$field]){<br>
        echo"";<br>
    } else{<br>
        echo"";<br>
    }<br>
}<br>
<br>
// Untuk memeriksa form, jika tombol diklik<br>
function check_form() {<br>
    global $error, $print_again, $_POST;<br>
    $print_again = false;<br>
    // Periksa field yang dimasukkan<br>
    foreach($_POST as $key => $value) {<br>
        if (($value == "") && eregi("_requireds", $key)){<br>
            $error[$key] = true;<br>
            $print_again = true;<br>
        } else{<br>
            $error[$key] = false;<br>
        }<br>
    }<br>
    if (!isTgl($_POST['tgl'])) {<br>
        $error['tgl'] = true;<br>
        $print_again = true;<br>
    }<br>
    if (!isEmail($_POST['email'])) {<br>
        $error['email'] = true;<br>
        $print_again = true;<br>
    }<br>
    // Print jika masih ada error<br>
    if ($print_again) {<br>
        print_form();<br>
    } else{<br>
        echo "Terima kasih....!!";<br>
    }<br>
}<br>
// copy fungsi isTgl() dan isEmail() di sini yang telah dibuat sebelumnya<br>
<br>
<br>
// main program<br>
if (isset($_POST['oke'])){<br>
    check_form();<br>
} else {<br>
    print_form();<br>
}<br>
?><br>


Kode progra di atas memerlukan fungsi isTgl() dan isEmail() yang telah Anda buat sebelumnya. Baca: cara membuat validasi input spesifik tanggal dan email. Pada solusi pertama ini, apabila terjadi kesalahan saat pengisin field yang divalidasi, teks field akan tercetak tebal dan berwarna merah, seperti di bawah ini.

pesan error

Tidak ada komentar:

Posting Komentar