Showing posts with label php. Show all posts
Showing posts with label php. Show all posts

Form Input Combobox

Form Input Combobox

Form Input Combobox


Pada tutorial kali ini, saya akan mencoba memadukan antara form input combobox, text, serta operator matematika, dengan membuat aplikasi perhitungan kalkulator sederhana.


Nama file    : combobox.php

Lokasi    : ../htdocs/belajarphp/combobox.php


Form Input Combobox

Hasil pada browser untuk script combobox.php

Form Input Combobox

Ketika tombol HITUNG diklik, maka akan menghitung kedua value pada variabel $a dan $b

Form Input Combobox


Agar lebih mendalami intuisi sebagai seorang programmer, silakan teman – teman analisa sendiri ya,
maksud script di atas.


Jika masih kurang tahu, silakan tanya kepada penulis atau teman atau siapapun yang bisa membantu
teman – teman ya.

Form Input Text dan Password

Form Input Text dan Password


Form Input Text dan Password


Pada contoh pembuatan form kita telah membuat input berupa text, pada contoh form, data yang
diambil oleh method, hanya diload pada halaman itu juga. Tutorial kali ini, kita akan meload data
tersebut pada halaman yang berbeda ditambah kita menambahkan inputan berupa password, ayo kita
praktekkan

Nama File    = input_text.php
Lokasi    = ../htodcs/belajarphp/input_text.php



Penjelasan kode :
-  Baris 4, membuat form dengan method POST, kemudian data akan load ke file proses_text.php.

-  Baris 5, membuat input type text, dengan nama user.

-  Baris 6, membuat input type password, dengan nama pass.




Nama File    = proses_text.php
Lokasi    = ../htodcs/belajarphp/proses_text.php



Penjelasan kode :
-  Baris 2 – 3, membuat varibel dengan nama $user dan $pass, yang mana nilai pada variabel tersebut
   di didapat dari data user dan pass pada inputan file input_text.php.

-  Baris 5 – 6, menampilkan nilai pada variabel tersebut ke browser.

Penggunaan GET dan POST

Penggunaan GET dan POST


Penggunaan GET dan POST

get dan post biasa digunakan dalam sebuah form sedangkan
Form adalah sebuah tag HTML yang di fungsikan untuk melakukan pengiriman data dari client side menuju server side untuk di olah dan akan di kembalikan ke sisi client side jika di perlukan, tergantung dari   fungsi website tersebut.


Pada  form  biasanya  kita  mengenal  attribute  dengan  nama  method.  Terdapat  dua  jenis  method  pada  PHP yaitu method GET dan method POST. Kedua method tersebut sebenarnya memiliki fungsi yang sama   yaitu mengirimkan nilai pada variabel dan mengambil nilai pada variabel.


Berikut penulis beri contoh untuk penggunaan GET dan POST.

Menggunakan method GET

Membuat file
Nama File    : method_get.php
Lokasi    : ../htdocs/belajarphp/method_get.php



Menggunakan method POST

Membuat file
Nama file    = method_post.php
Lokasi    = ../htdocs/belajarphp/method_post.php



Nah kita telah berhasil membuat form dengan method GET dan POST, setelah kita lihat ternyata pada kedua method tersebut ada sedikit perbedaan, perbedaan itu antara lain :

  Method POST tidak menampilkan nilai variabel pada URL dan Method GET menampilkan nilai         variabel yang dikirimkan.

  Method POST lebih aman dan Method GET kurang aman (pada contoh diatas berati isi variebel
     ditampilkan pada URL).

  Jika Method GET dibatasi panjang string hingga 2047 karakter, Method POST tidak.

  Perbedaan pengambilan data jika Method POST menggunakan $_POST sedangkan Method GET
     menggunakan $_GET.

  Method POST biasanya digunakan untuk input dari FORM, Method GET menggunakan input     
     dari  LINK atau akses menggunakan link.

  Method POST digunakan untuk mengirimkan data rahasia seperti password, Method GET   
     digunakan untuk mengirimkan/mengambil data publik seperti id_user atau id_halaman.

Pengulangan php

Pengulangan php

Sistem pengulangan  atau  bahasa  kerennya adalah  looping  yaitu  suatu proses  perputaran  nilai  dimana nilai tersebut telah di setting dengan aturan – aturan tertentu.


Pengulangan biasanya dipakai oleh programmer untuk membuat paging, looping untuk query array, dan sebagainya.  Pengulangan  tidak  hanya  dimiliki  oleh  PHP  saja,  tetapi  dimiliki  oleh  semua  bahasa pemrograman, secara konsep adalah sama, yang membedakan hanya syntaxnya saja.


A.  Pengulangan For

Pengulangan  for  biasanya  digunakan  untuk  melakukan  looping  yang  banyaknya  data  sudah
diketahui.




B.  Pengulangan While

Pengulangan while adalah pengulangan yang mendefinisikan kondisi di awal perintah. Jadi apabila
kondisi pada awal tidak terpenuhi maka proses pengulangan tidak akan pernah dilakukan




C.  Pengulangan Do – While

Pengulangan do-while hampir sama dengan pengulangan while. Perbedaannya hanya terletak pada
penempatan  kondisi  saja,  jika  pada  while  kondisi  di  awal  perintah,  maka  jika  do  while  kondisi berada  di  akhir  perintah.  Sehingga  pada  perulangan  ini  akan  tetap  melakukan  looping  minimal sebanyak satu kali, meskipun kondisi tidak terpenuhi.

Struktur Kendali php

Struktur Kendali php
Struktur Kendali php



Struktur Kendali php
Pada tutorial tentang operator perbandingan, kita telah menerapkan dari konsep struktur kendali yaitu

if..elseif.

Struktur  kendali  adalah  elemen  penting  dalam  semua  bahasa  pemrograman,  karena  pada  struktur kendali  inilah  kita  dapat  mengontrol  jalannya  eksekusi  program.  Atau  dapat  dijelaskan  dengan pernyataan bersyarat untuk mengendalikan urutan pernyataan agar kita mendapatkan nilai.

A.  Struktur Kendali if

Struktur kendali if ini sangat jarang digunakan oleh para programmer, karena if hanya berisi 1 (satu)
statement - kondisional saja.
Secara umum, struktur kendali if mempunyai bentuk seperti di bawah ini

if(kondisi){
statement
}


B.  Struktur Kendali if…else…

Struktur  kendali  inilah  yang  paling  sering  dipakai  oleh  para  programmer,  struktur  kendali  ini
memiliki  kondisi  dan  2  statement  saja.  Penulis  menggunakan  konsep  struktur  kendali  ini  untuk validasi user dan password pada form login.


C.  Struktur Kendali if…elseif..

Struktur  kendali  ini  telah  kita  buat  pada  bab  operator  perbandingan  pada  tutorial  sebelumnya.
Silakan teman – teman pahami ya struktur syntax pada bab sebelumnya.

Intinya  struktur  kendali  ini  digunakan  apabila  nantinya  untuk  hasilnya  mempunyai  kondisional
statement yang banyak.

D.  Struktur Kendali switch..case..

Switch..case.. merupakan salah satu alernatif untuk melakukan pemilihan statement.

Operator dalam PHP

Operator dalam PHP
Add caption


Operator  dalam  PHP  merupakan  symbol  yang  digunakan  dalam  program  untuk  melakukan  suatu
operasi.
A.  Operator Aritmatika
Dari  namanya  saja  kita  pasti  bisa  menganalisa  jenis  operator  apakah  ini,  jadi  operator  aritmatika
adalah suatu operator yang dikenai untuk melakukan perhitungan matematika.


Sama  halnya  pada  matematika  operator  ini,  memperhatikan  urutan  prioritasnya,  contohnya
operator  pangkat/akar  lebih  dulu  dikerjakan  daripada  operator  perkalian/pembagian,  operator
perkalian/pembagian lebih dulu dikerjakan daripada operator penjumlahan/pengurangan.


Pada  tutorial  kali  ini,  penulis  akan  menggunakan  variabel  untuk  melakukan  perhitungan  operator
aritmatikanya

<?php
        $a = 20;
        echo $a + 2 . "<br>";         //hasilnya 22
        echo $a - 3 . "<br>";          //hasilnya 17
        echo $a * 4 . "<br>";         //hasilnya 80
        echo $a / 2 . "<br>";         //hasilnya 10
        echo $a % 3 . "<br>";       //hasilnya 2

       echo ++ $a . "<br>";         //menaikkan 1 nilai $a, sehingga $a = 21
       echo -- $a . "<br>";           //menurunkan 1 nilai $a, sehingga $a = 20
?>


B.  Operator Perbandingan

Operator  perbandingan  biasanya  dipakai  untuk  membandingkan  nilai  pada  beberapa  variabel.
Biasanya antar variabel tersebut dibandingkan apakah data tersebut lebih besar, lebih kecil, sama
dengan, atau definisi lainnya.

Pada  bagian  ini,  penulis  akan  membuatkan  tutorial  perbandingan,  dengan  menyatukan  dengan
struktur kondisional if..elseif.

<?php
       $a = 10;
       $b = 10;

if($a == $b)
{
     echo 'Benar';
}
else
{
     echo 'Salah';
}

?>

Variabel PHP

Variabel php
Variabel php


Variabel pada pemrograman PHP digunakan untuk menyimpan data sementara, dimana nilai dari data
tersebut bisa berubah – ubah setiap kali program dijalankan. masih pada rumus matematika ax² + bx + c
Nilai x pada rumus tersebut itulah yang dinamakan dengan variabel.
Ketentuan dalam pembuatan variabel :
--  Variabel diawali dengan tanda dolar ($).
--  Setelah tanda $ diawali oleh huruf (contoh : $kota, $nama, $alamat).
--  Variabel bersifat case sensitive (jadi antara $kota, berbeda dengan $Kota).
--  Variabel  tidak  boleh  mengandung  spasi,  apabila  ada  2  (dua)  kata  pada  variabel  dapat  disambung
    dengan tanda underscore (contoh : $nama_lengkap, $tempat_lahir).

<?php
 
   $a=3;
   $b="yuk belajar PHP $a kali sehari";
   
   echo $b;
?>

Konstanta php


Konstanta php



Seperti  matematika  saja  ya,  ada  istilah  “konstanta”,  tetapi  memang  itulah  basic  dan  konsep  dari programming. Pada rumus matematika terdapat rumus ax² + bx +  c, nah konsep matematika inilah yang akan kita pakai untuk dasar programming PHP.


Pada  rumus  di  atas  huruf  a,  b,  dan  c  itulah  dimaksud  dengan  konstanta.  Pengertiannya  sama  seperti matematika,  konstanta pada pemrograman PHP  adalah varibel  tetap  atau  variabel  yang nilainya  tidak berubah – ubah.

Pada PHP, konstanta didefinisikan dengan fungsi define(). Ayo kita langsung praktekkan.

<?php

   define("website", "www.copas89.blogspot.com");
   echo "website";  // maka akan tampil tulisa www.copas89.blogspot.com

?>

Hello Word pada PHP


Hello Word pada PHP


Sepertinya  ini  sudah  menjadi  tradisi  para  programmer  pada  awal  belajar  bahasa  pemrograman,  yaitu
menuliskan kalimat “Hello Word”.

Syntax awal untuk membuat program PHP adalah di awali dengan <?php dan diakhiri dengan syntax
?>

Untuk menampilkan tulisan dalam browser, maka kita menggunakan syntax echo “…..”;

Untuk  memberikan  keterangan  atau  komentar  pada  PHP  (komentar  tidak  akan  muncul  dalam
browser) kita menggunakan tanda berikut
// Komentar
#  Komentar
/* Komentar */
Komentar ini berfungsi untuk memberikan keterangan pada syntax program kita, apabila kita sudah
mengetikkan kode dengan alur logika yang banyak.


form onsubmit jquery

form onsubmit jquery

http://stackoverflow.com/questions/3384960/want-html-form-submit-to-do-nothing

keywordnya: form no action onsubmit

Menggunakan return false; di javascript
that you call from the submit button, you can stop the form from submitting.
Basically, you need the following HTML:
<form onsubmit="myFunction(); return false;">
<input type="submit" value="Submit">
</form>
Then the supporting javascript:
<script language="javascript"><!--
function myFunction() {
    //do stuff
}
//--></script>
If you desire, you can also have certain conditions allow the script to submit the form:
<form onSubmit="return myFunction();">
<input type="submit" value="Submit">
</form>
Paired with:
<script language="JavaScript"><!--
function myFunction() {
    //do stuff
    if (condition)
        return true;

    return false;    
}
//--></script>

Tampilan Seperti Microsoft Word atau 7 WYSIWYG HTML Editor Gratis

7 WYSIWYG HTML Editor Gratis


sumber:  http://www.tutorial-webdesign.com/tag/tampilan-seperti-microsoft-word/


WYSIWYG html editor adalah sebuah teks/konten editor yang biasanya ada pada sebuah website dinamis, biasanya wysiwyg html editor ini berada di halaman administrator, wysiwyg html editor memiliki fitur yang mirip dengan microsoft word, dimana kita bisa membuat teks yang miring, tebal, garis bawah, mengatur paragraph, membuat bullet & numbering, dan lainnya yang berguna untuk mengelola konten website.
Wysiwyg html editor yang paling terkenal yaitu TinyMCE (bahkan dignakan oleh wordpress), Berikut ini ada beberapa wysiwyg editor gratis lain yang bisa anda gunakan untuk website anda.
1. Bootstrap-wysiwyg
Wysiwyg ini sangat kecil, ukuran file nya hanya 5kb, dan source code nya tidak sampai < 200 baris.
2. Froala
Froala WYSIWYG web editor yang dibuat dengan teknologi terbaru untuk keperluan website masa kini
3. Trumbowyg
Trumbowyg adalah plugin yang cukup ringan, dapat diterjemahkan dan disesuaikan dengan kebutuhann. Memiliki Desain yang indah, menghasilkan kode semantik, disertai dengan API kuat.
4. jQuery-Notebook
Wysiwyg web editor yang simple, clean & elegan yang sangat baik untuk web aplikasi yang sedang anda bangun.

5. jquery.qeditor
WYSIWYG editor yang sangat sederhana dibuat dengan jquery
6. Morrigan
Morrigan Editor editor WYSIWYG jQuery dengan perilaku diprediksi, ketekunan dan konsistensi.
7. Summernote
WYSIWYG Editor yang sangat sederhana untuk digunakan pada Twitter Bootstrap
Sekian
Masih banyak lagi editor-editor lain yang yang belum dibahas di artikel ini, semakin banyak pilihan tuntunya semakin memudahkan kita untuk menemukan editor yang paling baik dan paling cocok untuk menunjang pekerjaan.

Sampai jumpa pada tulisan tulisan berikutnya, salam web design & development indonesia
membuat link saat di sorot ada tulisannya

membuat link saat di sorot ada tulisannya



echo "<td style=\"width: 15%;text-align: center\">
         <a  title=\"tingggal sorot\" onclick=\"accdata('$row->id_usl')\"
         class=\"btn btn-sm btn-icon btn-success btn-rounded\">
          <i class=\"fa fa-eye\" ></i></a>|
                             
                            </td>";



tinggal tambah title aja

title=\"tingggal sorot\"
Entri, Edit, Delete, Tampil dengan PHP dan Ajax JQuery

Entri, Edit, Delete, Tampil dengan PHP dan Ajax JQuery

http://achmatim.net/2012/09/02/entri-edit-delete-tampil-dengan-php-dan-ajax-jquery/


Dalam setiap kesempatan membahas mengenai aplikasi berbasis web (web application), baik di dalam sesi mengajar matakuliah Pemrograman Web di Universitas Budi Luhur maupun sesi training terkait web, saya selalu menekankan bahwa hanya ada 4 (empat) proses dasar dalam aplikasi berbasis web. Aplikasi web yang sederhana hingga kompleks selalu berkaitan dengannya. Keempat proses tersebut adalah proses entri (input), ubah (edit), hapus (delete) dan tampil (show). Istilah lain dari keempat proses tersebut adalah CRUD (Create, Read, Update and Delete). Jadi kuasailah keempatnya maka selebihnya hanya variasi dari keempat proses tersebut. Sebagai contoh dalam proses update status di situs jejaring sosial facebook merupakan proses Entri atau Insert ke database, saat memperbaiki foto profil adalah proses edit (update) dan saat kita menghapus salah satu teman aalah proses delete.
Mengingat pentingnya proses tersebut, saya memberikan contoh khusus di bab terakhir dari buku Pemrograman Web dengan PHP & MySQL berupa proses dasar entri, edit, delete dan tampil dengan PHP dan MySQL. Sebelum melanjutkan tutorial ini, tidak ada salahnya jika Anda mencoba contoh tersebut, terutama bagi Anda yang belum pernah mencoba program serupa. Saya juga pernah mempublikasikan artikel entri, edit, delete dan tampil PHP yang memanfaatkan Macromedia Dreamweaver.


Lalu apa yang akan dipelajari di dalam tutorial ini?
Apa yang disampaikan dalam tutorial ini kurang lebih sama dengan tutorial saya sebelumnya, yaitu proses entri, edit, delete dan tampil data dengan PHP dan MySQL. Namun kali ini, saya ingin menambahkan konsep Ajax (Asyncronous Javascript and XML) dengan menggunakan library JQuery. Dengan konsep Ajax, maka proses entri, edit, delete dan tampil dapat dilakukan dengan lebih menarik.

Tujuan atau Rancangan Akhir Program

Untuk memberikan gambaran yang lebih jelas mengenai hasil akhir contoh program yang dibahas dalam tutorial ini, berikut beberapa hal penting:
  • Untuk memudahkan pemahaman, program hanya menangani 1 (satu) tabel MySQL yaitu tabel “mahasiswa” yang terdiri dari field NIM, NAMA dan ALAMAT.
  • Program hanya terdiri dari 1 (satu) file utama (tidak termasuk library yang digunakan)
  • Program menggunakan library Ajax JQuery.
  • Untuk penanganan form, digunakan plugin JQuery Form.
  • Untuk validasi form, digunakan plugin JQuery Validation.
  • Untuk menampilkan data dalam bentuk tabel, digunakan plugin JQuery Flexigrid
  • Proses EDIT dan DELETE dilakukan dengan memilih dan klik pada data yang akan diedit/didelete.
Untuk memberikan gambaran yang lebih jelas, silahkan lihat demo program terlebih dahulu.
Langsung aja kita mulai step by step untuk membuatnya.

1. Siapkan Database dan Tabel

Langkah pertama tentu persiapkan database dan tabel yang diperlukan. Seperti sudah disebutkan di rancangan akhir program di atas bahwa kita akan menyederhanakan struktur data yang akan dibuat. Dalam hal ini, kita akan membuat database dengan nama “demo” dan tabel dengan nama “mahasiswa”. Berikut ini struktur dari tabel mahasiswa yang akan dibuat:
FIELD TYPE LENGTH DESCRIPTION
nim VARCHAR 10 NIM Mahasiswa
nama VARCHAR 30 NAMA Mahasiswa
alamat TEXT Alamat Mahasiswa
Dan berikut ini perintah SQL untuk membuat database dan tabel di atas. Perintah dapat ditulis dan dijalankan di MySQLclient kesukaan Anda.
Code block   
  1. CREATE DATABASE demo;
  2. CREATE TABLE mahasiswa (
  3. nim VARCHAR(10) NOT NULL,
  4. nama VARCHAR(30) NOT NULL,
  5. alamat TEXT,
  6. PRIMARY KEY(nim)
  7. );

2. Buat Halaman beserta Form Inputan

Bagi Anda yang sudah belajar perintah-perintah HTML (Hypertext Mark up Language) tentunya tidak akan kesulitan dalam membuat form inputan untuk tabel mahasiswa di atas. Bentuk dan tampilan dari form inputan dapat disesuaikan sesuai keinginan Anda, namun yang penting untuk diperhatikan bahwa pastikan setiap inputan harus memiliki atribut name dan id agar dapat diakses dengan mudah melalui JQuery nantinya. Berikut ini source code HTML awal yang menampilkan form inputan data mahasiswa. Simpan program berikut ini sebagai file “index.php”.
Code block   
  1. <html>
  2. <head>
  3. <title>Entri, Edit, Delete, Tampil Data dengan PHP dan Ajax</title>
  4. <style type="text/css">
  5. .labelfrm {
  6. display:block;
  7. font-size:small;
  8. margin-top:5px;
  9. }
  10. .error {
  11. font-size:small;
  12. color:red;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <h1>Data Mahasiswa</h1>
  18. <form action="" method="post" id="frm">
  19. <label for="nim" class="labelfrm">NIM: </label>
  20. <input type="text" name="nim" id="nim" maxlength="10" class="required" size="15"/>
  21. <label for="nama" class="labelfrm">NAMA: </label>
  22. <input type="text" name="nama" id="nama" size="30" class="required"/>
  23.  
  24. <label for="alamat" class="labelfrm">ALAMAT: </label>
  25. <textarea name="alamat" id="alamat" cols="40" rows="4" class="required"></textarea>
  26.  
  27. <label for="submit" class="labelfrm">&nbsp;</label>
  28. <input type="submit" name="Input" value="Input" id="input"/>
  29. <input type="submit" name="Edit" value="Edit" id="edit"/>
  30. <input type="submit" name="Delete" value="Delete" id="delete"/>
  31. <input type="reset" name="Clear" value="Clear" id="clear"/>
  32. </form>
  33. </body>
  34. </html>
Pada program di atas terlihat bahwa terdapat satu buah form dengan id frm, yang memiliki 3 (tiga) buah inputan text dan textarea serta 4 (empat) buah tombol yaitu Input, Edit, Delete dan Clear. Masing-masing inputan diberi nama dan ID. Untuk inputan NIM, NAMA dan ALAMAT juga ditambahkan atribut class dengan value “required” yang berarti inputan harus diisi (menggunakan plugin JQuery Validate).
Berikut ini tampilan dari program sederhana di atas.
Gambar 1: Tampilan Form Inputan Data Mahasiswa

3. Koneksikan ke Database MySQL

Karena program dirancang untuk berhubungan dengan database MySQL, maka terlebih dahulu harus dikoneksikan antara PHP dengan MySQL. Untuk melakukan koneksi ke MySQL, dalam tutorial ini dicontohkan dengan cara yang paling mudah. Kita akan menggunakan fungsi mysql_connect() dan mysql_select_db() dari PHP. Pastikan Anda mengetahui informasi letak hostname, username, password untuk masuk ke server MySQL dan juga nama database yang akan digunakan sudah disiapkan.
Berikut ini potongan program untuk melakukan koneksi. Letakkan di awal file index.phpyang telah dibuat di langkah sebelumnya atau dapat juga dibuat di file khusus dan di-include-kan.
Code block   
  1. <?php
  2. /* koneksi ke db */
  3. mysql_connect("localhost", "root", "qwerty") or die(mysql_error());
  4. /* akhir koneksi db */
  5. ?>

4. Program Input ke MySQL

Setelah program PHP terkoneksi dengan MySQL, selanjutnya dibuat program untuk proses input (insert) ke database. Secara umum, untuk membuat program input ke database, kita ambil dulu data yang dientri oleh user sesuai dengan method dari form. Untuk me-refresh kembali mengenai penanganan form di PHP, Anda dapat mempelajari Bab 4 dari buku Pemrograman Web dengan PHP & MySQLyang dapat didownload di website saya. Setelah data dari form diambil, susun string perintah query untuk INSERT ke database. Bagaimana bentuk perintah INSERT dan contoh penggunaannya juga dapat dipelajari di buku saya tersebut, terutama di Bab 12 dan 13. Kurang lebih berikut ini, potongan program untuk input / entri ke MySQL. Anda dapat meletakkannya setelah baris perintah koneksi database.
Code block   
  1. /* penanganan form */
  2. if (isset($_POST['Input'])) {
  3. $nim = strip_tags($_POST['nim']);
  4. $nama = strip_tags($_POST['nama']);
  5. $alamat = strip_tags($_POST['alamat']);
  6.  
  7. //input ke db
  8. $query = sprintf("INSERT INTO mahasiswa VALUES('%s', '%s', '%s')",
  9. );
  10. $sql = mysql_query($query);
  11. if ($sql) {
  12. echo "Data berhasil disimpan";
  13. } else {
  14. echo "Data gagal disimpan ";
  15. echo mysql_error();
  16. }
  17. }
Berikut ini sedikit penjelasan dari potongan program diatas:
  • Baris 2: memastikan tombol “Input” ditekan oleh user menggunakan fungsi isset() yang akan bernilai TRUE jika suatu variabel telah terbentuk (jika user menekan suatu tombol maka variabel akan terbentuk)
  • Baris 3-5: proses pengambilan data dari form. Fungsi strip_tags() digunakan untuk memastikan bahwa inputan tidak mengandung tag-tag HTML atau javascript yang mungkin “berbahaya”.
  • Baris 8-12: pembentukan perintah untuk INSERT ke database. Fungsi mysql_escape_string() digunakan untuk menambahkan escape (backslashes, \ ) jika terdapat karakter khusus seperti tanda kutip dan dollar. Hal tersebut dilakukan sebagai salah satu cara mencegah praktek SQL Injection.
  • Baris 13: eksekusi perintah MySQL untuk mengentri data ke database menggunakan fungsi mysql_query().
  • Baris 14-19: notifikasi apakah proses berhasil atau gagal.
Pada tahap ini, sebaiknya Anda coba program dengan menginput suatu data melalui form. Pastikan tidak ada error dan data sudah masuk ke database (untuk melihat data, langsung gunakan tools MySQL yang Anda punya).

5. Sertakan Library JQuery dan Plugin JQuery Form

Hingga langkah ke-4 di atas, kita masih belum menggunakan konsep Ajax (Asynchronous Javascript and XML). Apa itu Ajax? Secara singkat, ajax merupakan konsep pengembangan web yang memungkinkan antara client dan server dapat berkomunikasi secara asynchronous, suatu proses bisa saja berjalan di belakang halaman. Contoh penerapannya saya rasa dengan mudah kita temui di banyak web, seperti pada situs Facebook, saat kita meng-update status, hanya bagian status aja yang berubah sedangkan keseluruhan halaman tidak berubah (refresh). Lebih lengkap mengenai Ajax, dapat Anda cari artikelnya di Google. Pada tutorial ini, digunakan library utama JQuery yang dapat didownload di situs http://code.jquery.com. Sedangkan untuk penanganan form dengan teknologi Ajax, digunakan plugin JQuery Form yang dapat didownload di situs http://malsup.com/jquery/form/. Dengan plugin ini, kita dapat mengubah proses penanganan form secara klasik seperti pada langkah ke-4 di atas, menjadi proses penanganan form dengan “gaya” Ajax. Saya memilih plugin ini dengan alasan kemudahan dalam penerapannya.
Untuk menyertakan library JQuery dan JQuery Form ke dalam halaman yang sudah kita buat sebelumnya, tambahkan dua baris perintah berikut ini di antara tag <head>(diasumsikan bahwa kedua plugin tersimpan di folder /libs).
Code block   
  1. <script type="text/javascript" src="libs/jquery.min.js"></script>
  2. <script type="text/javascript" src="libs/jquery.form.js"></script>
Dan setelah library disertakan, kita dapat memanggil plugin JQuery Form untuk mengaktifkan proses Ajax di dalam form. Pemanggilannya sangat mudah, cukup atur opsi / pilihan dan aktifkan berdasarkan selector dari form yang akan dipanggil.
Berikut ini program lengkap yang sudah ditambahkan pemanggilan plugin JQuery Form.
Code block   
  1. <?php
  2. /* koneksi ke db */
  3. mysql_connect("localhost", "root", "qwerty") or die(mysql_error());
  4. /* akhir koneksi db */
  5.  
  6. /* penanganan form */
  7. if (isset($_POST['Input'])) {
  8. $nim = strip_tags($_POST['nim']);
  9. $nama = strip_tags($_POST['nama']);
  10. $alamat = strip_tags($_POST['alamat']);
  11.  
  12. //input ke db
  13. $query= sprintf("INSERT INTO mahasiswa VALUES('%s', '%s', '%s')",
  14. );
  15. $sql = mysql_query($query);
  16. $pesan = "";
  17. if ($sql) {
  18. $pesan = "Data berhasil disimpan";
  19. } else {
  20. $pesan = "Data gagal disimpan ";
  21. $pesan .= mysql_error();
  22. }
  23. $response = array('pesan'=>$pesan, 'data'=>$_POST);
  24. echo json_encode($response);
  25. }
  26. ?>
  27. <html>
  28. <head>
  29. <title>Entri, Edit, Delete, Tampil Data dengan PHP dan Ajax</title>
  30. <style type="text/css">
  31. .labelfrm {
  32. display:block;
  33. font-size:small;
  34. margin-top:5px;
  35. }
  36. .error {
  37. font-size:small;
  38. color:red;
  39. }
  40. </style>
  41. <script type="text/javascript" src="libs/jquery.min.js"></script>
  42. <script type="text/javascript" src="libs/jquery.form.js"></script>
  43. <script type="text/javascript">
  44. $(document).ready(function() {
  45. //aktifkan ajax di form
  46. var options = {
  47. success : showResponse,
  48. resetForm : true,
  49. clearForm : true,
  50. dataType : 'json'
  51. };
  52. $('#frm').ajaxForm(options);
  53.  
  54. });
  55. function showResponse(responseText, statusText) {
  56. var data = responseText['data'];
  57. var pesan = responseText['pesan'];
  58. alert(pesan);
  59. }
  60. </script>
  61. </head>
  62. <body>
  63. <h1>Data Mahasiswa</h1>
  64. <form action="" method="post" id="frm">
  65. <label for="nim" class="labelfrm">NIM: </label>
  66. <input type="text" name="nim" id="nim" maxlength="10" class="required" size="15"/>
  67.  
  68. <label for="nama" class="labelfrm">NAMA: </label>
  69. <input type="text" name="nama" id="nama" size="30" class="required"/>
  70.  
  71. <label for="alamat" class="labelfrm">ALAMAT: </label>
  72. <textarea name="alamat" id="alamat" cols="40" rows="4" class="required"></textarea>
  73.  
  74. <label for="submit" class="labelfrm">&nbsp;</label>
  75. <input type="submit" name="Input" value="Input" id="input"/>
  76. <input type="submit" name="Edit" value="Edit" id="edit"/>
  77. <input type="submit" name="Delete" value="Delete" id="delete"/>
  78. <input type="reset" name="Clear" value="Clear" id="clear"/>
  79. </form>
  80. </body>
  81. </html>
Setelah library JQuery dan plugin JQuery Form disertakan (baris 42 dan 43), pada baris 45-55 diterapkan plugin JQuery Form pada form inputan (id form = #frm) dengan beberapa pengaturan (opsi). Opsi pada baris 48 berarti pada saat form inputan berhasil disubmit maka akan otomatis memanggil fungsi showResponse() yang didefinisikan pada baris 56-60. Opsi baris 49 dan 50 membuat form kembali ke posisi awal (reset) setelah proses submit terjadi, sedangkan opsi pada baris 51 merupakan pengaturan data yang dikirimkan secara asynchronous dalam bentuk JSON (Javascript Object Notation).
Gambar 2: Proses Entri setelah ditambahkan plugin JQuery Form
Gambar 2: Proses Entri setelah ditambahkan plugin JQuery Form
Pada saat form disubmit (ditekan tombol Input), data inputan tetap akan dikirim dan diproses oleh PHP melalui action yang telah ditentukan (baris 8-30). Namun pengiriman data tidak akan me-refresh halaman karena dilakukan di belakang halaman (asynchronous). Setelah proses penyimpanan data ke database berhasil dilakukan selanjutnya PHP akan mengirimkan “pesan” dalam bentuk JSON ke javascript. Perhatikan baris 27-29, yang mengubah variabel array berisi pesan menjadi format JSON menggunakan fungsi json_encode() dari PHP, serta mengirimkannya ke fungsi javascript showResponse() di baris 56-60. Hasil dari program di atas, setelah ditambahkan plugin JQuery Form tampak pada Gambar 2.

6. Validasi dengan plugin JQuery Validation

Seperti sudah pernah dijelaskan dan dicontohkan di tutorial saya berjudul Membuat Validasi Form dengan JQuery Validation, selanjutnya ditambahkan validasi form inputan dengan aturan semua field inputan yang harus diisi (required) dan khusus untuk inputan NIM hanya boleh diisi 10 digit angka (tidak boleh diisi huruf).
Berikut ini source code program setelah ditambahkan plugin JQuery Validation.
Code block   
  1. <?php
  2. /* koneksi ke db */
  3. mysql_connect("localhost", "root", "qwerty") or die(mysql_error());
  4. /* akhir koneksi db */
  5.  
  6. /* penanganan form */
  7. if (isset($_POST['Input'])) {
  8. $nim = strip_tags($_POST['nim']);
  9. $nama = strip_tags($_POST['nama']);
  10. $alamat = strip_tags($_POST['alamat']);
  11.  
  12. //input ke db
  13. $query= sprintf("INSERT INTO mahasiswa VALUES('%s', '%s', '%s')",
  14. );
  15. $sql = mysql_query($query);
  16. $pesan = "";
  17. if ($sql) {
  18. $pesan = "Data berhasil disimpan";
  19. } else {
  20. $pesan = "Data gagal disimpan ";
  21. $pesan .= mysql_error();
  22. }
  23. $response = array('pesan'=>$pesan, 'data'=>$_POST);
  24. echo json_encode($response);
  25. }
  26. ?>
  27. <html>
  28. <head>
  29. <title>Entri, Edit, Delete, Tampil Data dengan PHP dan Ajax</title>
  30. <style type="text/css">
  31. .labelfrm {
  32. display:block;
  33. font-size:small;
  34. margin-top:5px;
  35. }
  36. .error {
  37. font-size:small;
  38. color:red;
  39. }
  40. </style>
  41. <script type="text/javascript" src="libs/jquery.min.js"></script>
  42. <script type="text/javascript" src="libs/jquery.form.js"></script>
  43. <script type="text/javascript" src="libs/jquery.validate.min.js"></script>
  44. <script type="text/javascript">
  45. $(document).ready(function() {
  46. //aktifkan ajax di form
  47. var options = {
  48. success : showResponse,
  49. beforeSubmit: function(){
  50. return $("#frm").valid();
  51. },
  52. resetForm : true,
  53. clearForm : true,
  54. dataType : 'json'
  55. };
  56. $('#frm').ajaxForm(options);
  57.  
  58. //validasi form dgn jquery validate
  59. $('#frm').validate({
  60. rules: {
  61. nim : {
  62. digits: true,
  63. minlength:10,
  64. maxlength:10
  65. }
  66. },
  67. messages: {
  68. nim: {
  69. required: "Kolom nim harus diisi",
  70. minlength: "Kolom nim harus terdiri dari 10 digit",
  71. maxlength: "Kolom nim harus terdiri dari 10 digit",
  72. digits: "NIM harus berupa angka"
  73. },
  74. nama: {
  75. required: "Nama harus diisi dengan benar"
  76. }
  77. }
  78. });
  79. });
  80. function showResponse(responseText, statusText) {
  81. var data = responseText['data'];
  82. var pesan = responseText['pesan'];
  83. alert(pesan);
  84. }
  85. </script>
  86. </head>
  87. <body>
  88. <h1>Data Mahasiswa</h1>
  89. <form action="" method="post" id="frm">
  90. <label for="nim" class="labelfrm">NIM: </label>
  91. <input type="text" name="nim" id="nim" maxlength="10" class="required" size="15"/>
  92.  
  93. <label for="nama" class="labelfrm">NAMA: </label>
  94. <input type="text" name="nama" id="nama" size="30" class="required"/>
  95.  
  96. <label for="alamat" class="labelfrm">ALAMAT: </label>
  97. <textarea name="alamat" id="alamat" cols="40" rows="4" class="required"></textarea>
  98.  
  99. <label for="submit" class="labelfrm">&nbsp;</label>
  100. <input type="submit" name="Input" value="Input" id="input"/>
  101. <input type="submit" name="Edit" value="Edit" id="edit"/>
  102. <input type="submit" name="Delete" value="Delete" id="delete"/>
  103. <input type="reset" name="Clear" value="Clear" id="clear"/>
  104. </form>
  105. </body>
  106. </html>
Untuk menerapkan validasi di form inputan, pertama-tama sertakan plugin JQuery Validate seperti terlihat pada baris 44 program di atas. Selanjutnya terapkan rule yang sudah ditetapkan pada form sesuai dengan contoh pada baris 59 hingga 79. Dan untuk mengintegrasikan plugin JQuery Validation dengan JQuery Form yang sudah diterapkan sebelumnya, tambahkan opsi beforeSubmit seperti pada baris 50-52 program di atas.

6. Tampilkan Data dalam Bentuk Tabel dengan Flexigrid

Untuk menampilkan data pada dasarnya banyak pilihan bentuk, baik dalam bentuk list maupun tabel. Kali ini kita akan memanfaatkan plugin JQuery untuk menampilkan data dalam bentuk tabel, yaitu Flexigrid. Kelebihan utama dari plugin ini adalah kemudahan dan fleksibilitas dalam penerapannya. Kita tidak perlu membuat tabel dengan perintah HTML, cukup dengan menambahkan tag <table> dengan id tertentu, selebihnya plugin Flexigrid yang akan mengatur isinya. Kolom-kolom tabel dapat diatur dengan fleksibel sesuai kebutuhan, semua dilakukan melalui perintah Javascript. Sementara itu, data yang akan ditampilkan dalam tabel dapat berasal dari berbagai bentuk data, antara lain Array Javascript, XML, JSON maupun plain-text. Dari sisi source data tentunya dapat berasal dari halaman yang sama maupun halaman lain. Kelebihan lainnya adalah kolom dapat digeser, diurutkan dan diatur ukurannya on-the-fly, langsung di browser. Selain itu juga sudah tersedia halaman (paging) dan pencarian data (searching) berdasarkan kolom tertentu.
Untuk menampilkan data dengan Flexigrid cukup dengan 4 (empat) langkah sederhana, yaitu (1) sertakan library (Javascript & CSS) yang diperlukan, (2) siapkan obyek tabel dengan tag HTML <table>, (3) atur kolom yang akan ditampilkan dan (4) siapkan potongan program untuk menangani data.
Pada langkah pertama, kita sertakan library yang diperlukan seperti terlihat pada potongan program di bawah ini. Terdapat satu file CSS yang akan mengatur tampilan tabel flexigrid (baris 1) dan terdapat library utama flexigrid (baris 3). Selain itu, pada versi terakhir flexigrid harus disertakan plugin JQuery Cookie buatan Klaus Hartl (baris 2).
Code block   
  1. <link rel="stylesheet" type="text/css" href="libs/flexigrid/css/flexigrid.css">
  2. <script type="text/javascript" src="libs/jquery.cookie.js"></script>
  3. <script type="text/javascript" src="libs/flexigrid/js/flexigrid.js"></script>
Langkah kedua, siapkan obyek tabel beserta atribut id-nya pada tempat dimana kita akan menampilkan data. Gunakan perintah sederhana sebagai berikut:
Code block   
  1. <table id="flex1" style="display:none"></table>
Langkah ketiga adalah mengatur kolom-kolom yang akan ditampilkan beserta beberapa opsi atau properties dari tabel flexigrid. Langsung saja kita lihat contoh potongan program di bawah ini.
Code block   
  1. //flexigrid handling
  2. $('#flex1').flexigrid
  3. (
  4. {
  5. url: 'index.php?action=getdata',
  6. dataType: 'json',
  7.  
  8. colModel : [
  9. {display: 'NIM', name : 'nim', width : 100, sortable : true, align: 'left'},
  10. {display: 'Nama', name : 'nama', width : 200, sortable : true, align: 'left'},
  11. {display: 'Alamat', name : 'alamat', width : 400, sortable : true, align: 'left'}
  12. ],
  13. searchitems : [
  14. {display: 'NIM', name : 'nim'},
  15. {display: 'Nama', name : 'nama', isdefault: true}
  16. ],
  17.  
  18. sortname: 'nama', //default urut kolom nama
  19. sortorder: 'asc', //default urut ascending
  20. usepager: true, //tambahkan paging
  21. title: 'Data Mahasiswa', //judul flexigrid
  22. useRp: true,
  23. rp: 15,
  24. showTableToggleBtn: true,
  25. width: 700, //lebar tabel
  26. height: 400 //tinggi tabel
  27. }
  28. );
Sedikit penjelasan mengenai potongan program di atas.
  • Baris 2: Pemanggilan library flexigrid diawali dengan memanggil fungsi flexigrid() dan diterapkan pada tabel dengan id #flex1 sesuai dengan tabel yang sudah dibuat di langkah sebelumnya.
  • Baris 5-6: Opsi url dapat diisi dengan alamat source data yang akan ditampilkan di tabel. Alamat source data dapat berasal dari halaman yang sama seperti pada contoh di atas, dapat juga dari halaman berbeda. Format datanya harus sesuai dengan opsi yang dipilih pada baris 6 yaitu dataType (dalam hal ini menggunakan JSON).
  • Baris 8-12: Pengaturan kolom-kolom yang akan ditampilkan di tabel. Urutan dari kolom harus sesuai dengan urutan data source-nya, jika tidak isi data bisa saja tidak sesuai. Pada setiap kolom terdapat beberapa pengaturan seperti judul kolom (display), nama kolom (name) sebagai identitas kolom, lebar kolom (width), dapat diurutkan atau tidak (sortable) dan perataan kolom (align). Pada contoh di atas, terdapat 3 kolom yaitu nim, nama dan alamat.
  • Baris 13-16: Menambahkan fitur pencarian dimana pencarian dapat dilakukan berdasarkan kolom nim dan nama.
  • Baris 18-27: Beberapa pengaturan lainnya yang dapat dilakukan seperti pengaturan pengurutan, pengaturan halaman (paging) serta lebar dan tinggi tabel.
Langkah keempat atau yang terakhir untuk menampilkan data ke flexigrid adalah menyiapkan potongan program PHP untuk menangani data. Jika data berasal dari database maka tugas bagian ini adalah melakukan pengambilan data (SELECT) untuk selanjutnya diformat sesuai dengan standar flexigrid dan dikirimkan ke library flexigrid untuk ditampilkan. Dalam contoh ini, data diformat dalam bentuk JSON.
Berikut ini potongan program PHP untuk menangani data flexigrid.
Code block   
  1. if (isset($_GET['action']) && $_GET['action'] == 'getdata') {
  2. $page = (isset($_POST['page']))?$_POST['page']: 1;
  3. $rp = (isset($_POST['rp']))?$_POST['rp'] : 10;
  4. $sortname = (isset($_POST['sortname']))? $_POST['sortname'] : 'nama';
  5. $sortorder = (isset($_POST['sortorder']))? $_POST['sortorder'] : 'asc';
  6.  
  7. $sort = "ORDER BY $sortname $sortorder";
  8. $start = (($page-1) * $rp);
  9. $limit = "LIMIT $start, $rp";
  10.  
  11. $query = (isset($_POST['query']))? $_POST['query'] : '';
  12. $qtype = (isset($_POST['qtype']))? $_POST['qtype'] : '';
  13.  
  14. $where = "";
  15. if ($query) $where .= "WHERE $qtype LIKE '%$query%' ";
  16.  
  17. $query = "SELECT nim, nama, alamat ";
  18. $query_from =" FROM mahasiswa ";
  19.  
  20. $query .= $query_from . " $where $sort $limit";
  21.  
  22. $query_total = "SELECT COUNT(*)". $query_from." ".$where;
  23.  
  24. $sql = mysql_query($query) or die($query);
  25. $sql_total = mysql_query($query_total) or die($query_total);
  26. $total = mysql_fetch_row($sql_total);
  27. $data = $_POST;
  28. $data['total'] = $total[0];
  29. $datax = array();
  30. $datax_r = array();
  31. while ($row = mysql_fetch_row($sql)) {
  32. $rows['id'] = $row[0];
  33. $datax['cell'] = $row;
  34. array_push($datax_r, $datax);
  35. }
  36. $data['rows'] = $datax_r;
  37. echo json_encode($data);
  38. }
Gambar 3 berikut ini tampilan halaman setelah ditambahkan tabel flexigrid.
Tampilan Flexigrid
Gambar 3. Tampilan Flexigrid

7. Tampilkan Data di Form saat Baris Fexigrid Dipilih

Data sudah ditampilkan di dalam grid, selanjutnya akan dilakukan proses Edit dan Delete. Untuk keperluan proses tersebut, setiap baris data di dalam flexigrid dipilih akan ditampilkan di form yang sudah dibuat. Jadi untuk sebelum melakukan proses EDIT dan DELETE, perlu memilih data yang akan diproses dengan mengklik pada baris data di flexigrid.
Untuk menambahkan action saat baris flexigrid diklik, cukup menambahkan atribut ‘process’ pada pendefinisian colModel. Perhatikan contoh sebagai berikut dimana doaction merupakan fungsi javascript yang akan dipanggil saat suatu baris diklik / dipilih.
Code block   
  1. colModel : [
  2. {display: 'NIM', name : 'nim', width : 100, sortable : true, align: 'left', process: doaction},
  3. {display: 'Nama', name : 'nama', width : 200, sortable : true, align: 'left', process: doaction},
  4. {display: 'Alamat', name : 'alamat', width : 400, sortable : true, align: 'left', process: doaction}
  5. ],
Dan berikut ini contoh fungsi doaction yang akan menangani proses saat baris data di flexigrid dipilih.
Code block   
  1. function doaction( celDiv, id ) {
  2. $( celDiv ).click( function() {
  3. var nim = $(this).parent().parent().children('td').eq(0).text();
  4. $.getJSON ('index.php',{action:'get_mhs',nim:nim}, function (json) {
  5. $('#nim').val(json.nim);
  6. $('#nama').val(json.nama);
  7. $('#alamat').val(json.alamat);
  8. });
  9. $('#nim').attr('readonly','readonly');
  10. $('#input').attr('disabled','disabled');
  11. $('#edit, #delete').removeAttr('disabled');
  12. });
  13. }
Perhatikan fungsi doaction di atas. Pertama fungsi akan melakukan pengecekan apakah terdapat suatu cell (kolom baris) data diklik (lihat baris 2). Jika terdapat cell yang diklik, maka ambil nilai dari cell pada kolom pertama baris tersebut, yaitu cell yang berisi NIM sebagai primary key-nya (lihat baris 3). Tentunya baris 3 harus disesuaikan dengan struktur data yang ada, jika lebih dari satu primary key, ya tinggal tambahkan variabel lainnya. Lanjut, setelah NIM dari baris didapatkan, kita perlu mendapatkan data lengkap dari database sehingga nim tersebut dikirimkan ke halaman index.php secara asynchronous (baris 4). Dengan perintah baris 4, seolah-olah kita mengakses browser dengan alamat http://namaserver/index.php?action=get_mhs&nim=nim, namun dilakukan oleh Javascript sehingga tidak kelihatan secara kasat mata. Sementara itu, karena memanfaatkan fungsi $.getJSON, sehingga balikan data harus dalam format JSON. Pada baris 5-7, data balikan yang berupa JSON ditampilkan di form melalui fungsi $.val() dari JQuery. Untuk melengkapi proses, pada baris 9-12 diatur agar form inputan NIM tidak dapat diedit (readonly), aktifkan tombol EDIT dan DELETE, serta disable tombol INPUT.
Berikut ini potongan program PHP untuk mengambil data berdasarkan NIM yang dipilih. Data dikembalikan dalam format JSON (Javascript Object Notation) seperti terlihat pada baris 6.
Code block   
  1. if (isset($_GET['action']) && $_GET['action'] == 'get_mhs') {
  2. $nim = $_GET['nim'];
  3. $query = "SELECT * FROM mahasiswa WHERE nim='$nim'";
  4. $sql = mysql_query($query);
  5. $row = mysql_fetch_assoc($sql);
  6. echo json_encode ($row);
  7. }

8. Proses Edit dan Delete

Setelah data dipilih dan ditampilkan di dalam form inputan, dapat dengan mudah dilakukan proses EDIT dan DELETE. Seperti halnya proses INPUT, pada dasarnya proses EDIT dan DELETE akan mengambil data dari form dan menjalankan perintah query UPDATE atau DELETE ke tabel. Karena form sudah diaktifkan sebagai form Ajax (lihat kembali langkah 5) dan juga sudah otomatis dilakukan validasi (lihat langkah 6), maka kita tinggal mendefinisikan potongan program PHP untuk EDIT dan DELETE. Lihat potongan program di bawah ini.
Code block   
  1. if (isset($_POST['Edit'])) {
  2. $nim = strip_tags($_POST['nim']);
  3. $nama = strip_tags($_POST['nama']);
  4. $alamat = strip_tags($_POST['alamat']);
  5.  
  6. //update db
  7. $query = sprintf("UPDATE mahasiswa SET nama='%s', alamat='%s' WHERE nim='%s'",
  8. );
  9. $sql = mysql_query($query);
  10. $pesan = "";
  11. if ($sql) {
  12. $pesan = "Data berhasil disimpan";
  13. } else {
  14. $pesan = "Data gagal disimpan ";
  15. $pesan .= mysql_error();
  16. }
  17. $response = array('pesan'=>$pesan, 'data'=>$_POST);
  18. echo json_encode($response);
  19. } else if (isset($_POST['Delete'])) {
  20. $nim = strip_tags($_POST['nim']);
  21.  
  22. //delete data
  23. $query = sprintf("DELETE FROM mahasiswa WHERE nim='%s'",
  24. );
  25. $sql = mysql_query($query);
  26. $pesan = "";
  27. if ($sql) {
  28. $pesan = "Data berhasil dihapus";
  29. } else {
  30. $pesan = "Data gagal dihapus ";
  31. $pesan .= mysql_error();
  32. }
  33. $response = array('pesan'=>$pesan, 'data'=>$_POST);
  34. echo json_encode($response);
  35. }

9. Program Lengkap Ada di sini!

Bagian demi bagian sudah dibahas, semoga cukup jelas dan dapat dipahami. Di bawah ini program lengkap dan hasil akhir dari tutorial kita. Anda dapat mencobanya di komputer Anda, tentunya dengan menyertakan library yang diperlukan. Di bawah ini juga tersedia tautan untuk mencoba contoh program ini secara langsung (live demo) dan juga tautan untuk mendownload program lengkap beserta library yang diperlukan.
Code block   
  1. <?php
  2. /* koneksi ke db */
  3. mysql_connect("localhost", "root", "qwerty") or die(mysql_error());
  4. /* akhir koneksi db */
  5.  
  6. /* penanganan form */
  7. if (isset($_POST['Input'])) {
  8. $nim = strip_tags($_POST['nim']);
  9. $nama = strip_tags($_POST['nama']);
  10. $alamat = strip_tags($_POST['alamat']);
  11.  
  12. //input ke db
  13. $query = sprintf("INSERT INTO mahasiswa VALUES('%s', '%s', '%s')",
  14. );
  15. $sql = mysql_query($query);
  16. $pesan = "";
  17. if ($sql) {
  18. $pesan = "Data berhasil disimpan";
  19. } else {
  20. $pesan = "Data gagal disimpan ";
  21. $pesan .= mysql_error();
  22. }
  23. $response = array('pesan'=>$pesan, 'data'=>$_POST);
  24. echo json_encode($response);
  25. } else if (isset($_POST['Edit'])) {
  26. $nim = strip_tags($_POST['nim']);
  27. $nama = strip_tags($_POST['nama']);
  28. $alamat = strip_tags($_POST['alamat']);
  29.  
  30. //update data
  31. $query = sprintf("UPDATE mahasiswa SET nama='%s', alamat='%s' WHERE nim='%s'",
  32. );
  33. $sql = mysql_query($query);
  34. $pesan = "";
  35. if ($sql) {
  36. $pesan = "Data berhasil disimpan";
  37. } else {
  38. $pesan = "Data gagal disimpan ";
  39. $pesan .= mysql_error();
  40. }
  41. $response = array('pesan'=>$pesan, 'data'=>$_POST);
  42. echo json_encode($response);
  43. } else if (isset($_POST['Delete'])) {
  44. $nim = strip_tags($_POST['nim']);
  45.  
  46. //delete data
  47. $query = sprintf("DELETE FROM mahasiswa WHERE nim='%s'",
  48. );
  49. $sql = mysql_query($query);
  50. $pesan = "";
  51. if ($sql) {
  52. $pesan = "Data berhasil dihapus";
  53. } else {
  54. $pesan = "Data gagal dihapus ";
  55. $pesan .= mysql_error();
  56. }
  57. $response = array('pesan'=>$pesan, 'data'=>$_POST);
  58. echo json_encode($response);
  59. } else if (isset($_GET['action']) && $_GET['action'] == 'getdata') {
  60.  
  61. $page = (isset($_POST['page']))?$_POST['page']: 1;
  62. $rp = (isset($_POST['rp']))?$_POST['rp'] : 10;
  63. $sortname = (isset($_POST['sortname']))? $_POST['sortname'] : 'nama';
  64. $sortorder = (isset($_POST['sortorder']))? $_POST['sortorder'] : 'asc';
  65.  
  66. $sort = "ORDER BY $sortname $sortorder";
  67. $start = (($page-1) * $rp);
  68. $limit = "LIMIT $start, $rp";
  69.  
  70. $query = (isset($_POST['query']))? $_POST['query'] : '';
  71. $qtype = (isset($_POST['qtype']))? $_POST['qtype'] : '';
  72.  
  73. $where = "";
  74. if ($query) $where .= "WHERE $qtype LIKE '%$query%' ";
  75.  
  76. $query = "SELECT nim, nama, alamat ";
  77. $query_from =" FROM mahasiswa ";
  78.  
  79. $query .= $query_from . " $where $sort $limit";
  80.  
  81. $query_total = "SELECT COUNT(*)". $query_from." ".$where;
  82.  
  83. $sql = mysql_query($query) or die($query);
  84. $sql_total = mysql_query($query_total) or die($query_total);
  85. $total = mysql_fetch_row($sql_total);
  86. $data = $_POST;
  87. $data['total'] = $total[0];
  88. $datax = array();
  89. $datax_r = array();
  90. while ($row = mysql_fetch_row($sql)) {
  91. $rows['id'] = $row[0];
  92. $datax['cell'] = $row;
  93. array_push($datax_r, $datax);
  94. }
  95. $data['rows'] = $datax_r;
  96. echo json_encode($data);
  97. } else if (isset($_GET['action']) && $_GET['action'] == 'get_mhs') {
  98. $nim = $_GET['nim'];
  99. $query = "SELECT * FROM mahasiswa WHERE nim='$nim'";
  100. $sql = mysql_query($query);
  101. $row = mysql_fetch_assoc($sql);
  102. echo json_encode ($row);
  103. }
  104. ?>
  105. <html>
  106. <head>
  107. <title>Entri, Edit, Delete, Tampil Data dengan PHP dan Ajax</title>
  108. <style type="text/css">
  109. .labelfrm {
  110. display:block;
  111. font-size:small;
  112. margin-top:5px;
  113. }
  114. .error {
  115. font-size:small;
  116. color:red;
  117. }
  118. </style>
  119. <script type="text/javascript" src="libs/jquery.min.js"></script>
  120. <script type="text/javascript" src="libs/jquery.form.js"></script>
  121. <script type="text/javascript" src="libs/jquery.validate.min.js"></script>
  122. <link rel="stylesheet" type="text/css" href="libs/flexigrid/css/flexigrid.css">
  123. <script type="text/javascript" src="libs/jquery.cookie.js"></script>
  124. <script type="text/javascript" src="libs/flexigrid/js/flexigrid.js"></script>
  125. <script type="text/javascript">
  126. $(document).ready(function() {
  127. resetForm();
  128. //aktifkan ajax di form
  129. var options = {
  130. success : showResponse,
  131. beforeSubmit: function(){
  132. return $("#frm").valid();
  133. },
  134. resetForm : true,
  135. clearForm : true,
  136. dataType : 'json'
  137. };
  138. $('#frm').ajaxForm(options);
  139.  
  140. //validasi form dgn jquery validate
  141. $('#frm').validate({
  142. rules: {
  143. nim : {
  144. digits: true,
  145. minlength:10,
  146. maxlength:10
  147. }
  148. },
  149. messages: {
  150. nim: {
  151. required: "Kolom nim harus diisi",
  152. minlength: "Kolom nim harus terdiri dari 10 digit",
  153. maxlength: "Kolom nim harus terdiri dari 10 digit",
  154. digits: "NIM harus berupa angka"
  155. },
  156. nama: {
  157. required: "Nama harus diisi dengan benar"
  158. }
  159. }
  160. });
  161.  
  162. //flexigrid handling
  163. $('#flex1').flexigrid
  164. (
  165. {
  166. url: 'index.php?action=getdata',
  167. dataType: 'json',
  168.  
  169. colModel : [
  170. {display: 'NIM', name : 'nim', width : 100, sortable : true, align: 'left', process: doaction},
  171. {display: 'Nama', name : 'nama', width : 200, sortable : true, align: 'left', process: doaction},
  172. {display: 'Alamat', name : 'alamat', width : 400, sortable : true, align: 'left', process: doaction}
  173. ],
  174. searchitems : [
  175. {display: 'NIM', name : 'nim'},
  176. {display: 'Nama', name : 'nama', isdefault: true}
  177. ],
  178.  
  179. sortname: 'nama',
  180. sortorder: 'asc',
  181. usepager: true,
  182. title: 'Data Mahasiswa',
  183. useRp: true,
  184. rp: 15,
  185. width: 700,
  186. height: 400
  187. }
  188. );
  189.  
  190. });
  191. function doaction( celDiv, id ) {
  192. $( celDiv ).click( function() {
  193. var nim = $(this).parent().parent().children('td').eq(0).text();
  194. $.getJSON ('index.php',{action:'get_mhs',nim:nim}, function (json) {
  195. $('#nim').val(json.nim);
  196. $('#nama').val(json.nama);
  197. $('#alamat').val(json.alamat);
  198. });
  199. $('#nim').attr('readonly','readonly');
  200. $('#input').attr('disabled','disabled');
  201. $('#edit, #delete').removeAttr('disabled');
  202. });
  203. }
  204. function showResponse(responseText, statusText) {
  205. var data = responseText['data'];
  206. var pesan = responseText['pesan'];
  207. alert(pesan);
  208. resetForm();
  209. $('#flex1').flexReload();
  210. }
  211. function resetForm() {
  212. $('#input').removeAttr('disabled');
  213. $('#edit, #delete').attr('disabled','disabled');
  214. $('#nim').removeAttr('readonly');
  215. }
  216. </script>
  217. </head>
  218. <body>
  219. <h1>Data Mahasiswa</h1>
  220. <form action="" method="post" id="frm" onReset="resetForm()">
  221. <label for="nim" class="labelfrm">NIM: </label>
  222. <input type="text" name="nim" id="nim" maxlength="10" class="required" size="15"/>
  223.  
  224. <label for="nama" class="labelfrm">NAMA: </label>
  225. <input type="text" name="nama" id="nama" size="30" class="required"/>
  226.  
  227. <label for="alamat" class="labelfrm">ALAMAT: </label>
  228. <textarea name="alamat" id="alamat" cols="40" rows="4" class="required"></textarea>
  229.  
  230. <label for="submit" class="labelfrm">&nbsp;</label>
  231. <input type="submit" name="Input" value="Input" id="input"/>
  232. <input type="submit" name="Edit" value="Edit" id="edit"/>
  233. <input type="submit" name="Delete" value="Delete" id="delete"/>
  234. <input type="reset" name="Clear" value="Clear" id="clear"/>
  235. </form>
  236.  
  237. <table id="flex1" style="display:none"></table>
  238. </body>
  239. </html>

Demo dan Download

Kesimpulan

Berdasarkan penjelasan di atas, dapat disimpulkan bahwa penerapan konsep Ajax di dalam program PHP dapat dilakukan dengan mudah dengan memanfaatkan library JQuery. Penggunaan JQuery juga dapat menghasilkan tampilan yang baik serta membuat pengguna lebih mudah dan nyaman dalam menggunakan aplikasi kita. Sebagai contoh dalam tutorial ini, untuk melakukan proses Entri, Edit, Delete dan Tampil Data hanya disajikan satu halaman serta semua proses tidak memerlukan refresh keseluruhan halaman. Proses terjadi secara asynchronous di “belakang” halaman. Dengan demikian, penerapan konsep Ajax akan membuat aplikasi lebih kaya dan menarik (Rich Internet Application).
Semoga tutorial ini bermanfaat untuk kita semua dan mari kobarkan terus semangat berbagi!