Thursday, July 01, 2010

Request GET pada CodeIgniter

Secara default CodeIgniter menghapus (Unset) Variable Global $_GET. Namun demikian terkadang request dibutuhkan pada saat implementasi.

Untuk mengatasi hal ini anda dapat membuat fungsi ( helper function) untuk menangani request GET.
1. Buat class MasterController dengan kode berikut ini :
  1. class MasterController extends Controller {
  2. function MasterController()
  3. {

  4. }
  5. function getRequests()
  6. {
  7. //get the default object
  8. $CI =& get_instance();
  9. //declare an array of request and add add basic page info
  10. $requestArray = array();
  11. $requests = $CI->uri->segment_array();
  12. foreach ($requests as $request)
  13. {
  14. $pos = strrpos($request, ':');
  15. if($pos >0)
  16. {
  17. list($key,$value)=explode(':', $request);
  18. if(!empty($value) || $value='') $requestArray[$key]=$value;
  19. }
  20. }
  21. return $requestArray ;
  22. }
  23. }

2. Setiap Controller akan mengextends class MasterController
class produk extends MasterController

3. Format Request GET adalah sebagai berikut ini :
http://localhost/your_project/nama_class/nama_fungsi/var1:value1/var2:value2
contohnya :
http://localhost/inventory/produk/bacaget/kode:T001/harga:30000

4. Pada Controller lakukan kode berikut untuk menangkap request GET

  1. class produk extends MasterController {
  2. ....
  3. ....

  4. function bacaget()
  5. {
  6. $reqs = self::getRequests();
  7. echo 'Kode Produk : ' . $reqs['kode'];
  8. echo 'Harga : '. $reqs['harga'];
  9. }
  10. }