Cetuskan acara apabila menekan butang Enter (Event Trigger)

Sekiranya anda tidak faham yang yang saya maksudkan. Boleh rujuk sini.

Teknik ini sesuai digunakan bagi fungsi carian. Untuk artikel kali ini, saya cuma menunjukkan bagaimana mahu melakukan pencetus(trigger) untuk sesuatu acara (event) menggunakan kekunci Enter. Seperti artikel sebelum ini, saya menunjukkan bagaimana melakukannya menggunakan Jquery.

Mula-mula kita haruslah memasukkan pautan fail jquery ke kod html.


<script type="text/javascript" src="jquery-1.6.min.js"></script>

Kemudian kita haruslah meletakkan kesemua kod yang terlibat didalam $().ready. Ini bagi memboleh skrip dapat dijana selepas halaman selesai di muatkan kedalam pelayar.


$(document).ready(function(){

//skrip akan berada disini.

});

Terdapat 2 fungsi utama yang diperlukan. Iaitu .focus() dan juga .keyup(). Focus bagi membolehkan skrip hanya dilarikan ketika pengguna sedang menaip textbox tertentu. Sudah pastinya kita tidak mahu halaman kita menjadi menjengkelkan apabila pengguna tersilap menekan butang Enter.

Fungsi .keyup() pula membolehkan jquery membaca setiap kekunci yang ditekan pada papan kekunci. Ini bagi membolehkan jquery mengetahui kekunci Enter telah ditekan


$("#idTextbox").focus(function(){

$("#idTextbox").keyup(function(event){

//pemeriksaan kekunci Enter akan berlaku disini

})

})

Didalam fungsi .keyup(), pemeriksaan kepada setiap kekunci yang ditekan akan dilakukan. Nilai bagi butan Enter adalah 13. Untuk bahagian ini kita hanya menggunakan javascript. Tidak perlu menggunakan fungsi jquery.


var e = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));
if (e == 13){
alert($("#search").val());
$("#search").blur();
}

Memandangkan untuk demo ini saya hanya memaparkan data yang ditaip pada alert, maka saya menambah fungsi .blur() bagi menghilangkan fokus dari textbox supaya apabila menekan butang Enter pada alert tidak menjana alert yang baru.


<html>
<head>
<title>
On Enter
</title>
<script type="text/javascript" src="jquery-1.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#search").focus(function(){
$("#search").keyup(function(event){
var e = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));
if (e == 13){
alert($("#search").val());
$("#search").blur();
}
});
});
});
</script>
</head>
<body>
<input type="text" name="search" id="search" />
</body>
</html>

Perbezaan =, == dan ===

Catatan untuk diri. Perbezaan antara = , == dan ===.

= digunakan untuk mengumpukkan nilai. Contoh :


<?php

$nilai = 10;

?>

== digunakan untuk perbandingan nilai tanpa melibat jenis data yang dibandingkan. Sebagai contoh :


<?php

$nilai = "10";
if ($nilai == 10)
echo 'Sama';
else
echo 'Tidak';

// akan memberikan paparan Sama

?>

=== pula digunakan untuk perbandingan nilai dengan melibatkan jenis data yang dibandingkan.


<?php

$nilai = '10';

if ($nilai === 10)
echo 'Sama';
else
echo 'Tidak';

// akan memberikan paparan Tidak

?>

Jika kita membandingkan $nilai seperti ini, ianyakan akan memberikan jawapan yang berlainan.


$nilai = '10';

if($nilai === (string)10)
echo 'Sama';
else
echo 'Tidak';

//paparan adalah Sama

Apa yang berlaku ialah kita telah mengatakan nilai 10 adalah jenis string. apa yang ada didalam $nilai adalah string. Bila kita menggunakan === ianya membandingkan jenis data dan nilai yang dipegang adalah sama.

Selamat bermain dengan =, == dan juga ===

p/s :: kalau salah tolong betulkan.

Hilangkan nilai awal textbox menggunakan jQuery

Sudah lama aku tidak berkongsi sesuatu di sini. Kali ini aku ingin kongsikan bagaimana membuat nilai awal pada textbox hilang. Sila rujuk gambar di bawah ehehehe.

Langkah pertama semestinya muatturun jquery dari sini. Selepas itu perlulah memasukkan fail jquery ini kedalam kod html kita.

<script src="jquery-1.6.min.js"></script>

Kemudian kita tambah pula kod ini kepada fail html kita.


<script type="text/javascript">
 $().ready(function(){
 $(".clearMe").focus(function(){
 if ($(this).val() == this.defaultValue)
 {
 $(this).val("");
 $(this).removeClass('greyText');
 }
 });

 });
</script>

Sekarang mari kita berbicara mengenai kod diatas. $(document).ready mempunyai fungsi yang sama dengan <body onload=”nama fungsi”>. $(“.clearMe”).focus pula merupakan fungsi didalam jQuery yang menyerupai onFocus. Fungsi akan dipanggil apabila kita klik atau fokus pada elemen yang mempunyai kelas (class) clearMe.

Ini merupakan bahagian yang sangat penting. if ($(this).val() == this.defaultValue).

$(this).val() adalah fungsi dalam jQuery. Fungsi ini akan membaca nilai yang terdapat didalam elemen yang sedang difokus. Manakala this.defaultValue adalah fungsi yang terdapat didalam javascript. Ia bukanlah sebahagian dari fungsi jQuery. this.defaultValue ini akan sentiasa membaca nilai awal yang telah ditetapkan oleh kita.

Apa yang dilakukan oleh baris ini ialah, ianya akan akan membandingkan nilai semasa dari jQuery dengan nilai awal yang dibaca oleh javascript. Sekiranya tidak sama kod yang terdapat didalamkan akan dilaksanakan.

$(this).val(“”) akan mengumpukkan nilai ruang kosong kepada elemen tadi manakala $(this).removeClass(“greyText”) akan membuang kelas greyText dari ada pada elemen kita. Ini bagi membolehkan apa yang ditaip oleh pengguna, tidak akan berwarna kelabu.

Berikut merupakan kod penuh untuk fungsi ini.


<html>
 <head>
 <title>Kosongkan Textbox</title>
 <script src="jquery-1.6.min.js"></script>
 <script type="text/javascript">
 $().ready(function(){
 $(".clearMe").focus(function(){
 if ($(this).val() == this.defaultValue)
 {
 $(this).val("");
 $(this).removeClass('greyText');
 }
 });

 $(".clearMe").blur(function(){
 if ($(this).val() == "")
 {
 $(this).val(this.defaultValue);
 $(this).addClass('greyText');
 }
 });
 });
 </script>
 </head>
 <body>
 <style>
 .greyText {
 color:grey;
 }
 </style>
 <form>
 <label>Masukkan Nama</label> <input type="text" value="Jasdy Syarman" />
 <input type="button" value="Send" />
 </form>
 </body>
</html>

Maaf sekiranya code ini tidak disusun dengan baik. Aku hanya tampal dari notepad++ dan wordpress membuang semua ruang kosong yang tiada &nbsp; ehehehehe.

Kebanyakan kod yang ada menggunakan perbandingan dengan atribut title. Aku tidak ingin menambah panjang kod yang perlu ditaip pada form. Makanya aku menyediakan kod ini.

Selamat mencuba!

Membakar dengan CakePHP di Windows 7

Artikel ini agak ringkas. Tujuan artikel ini diadakan, agar saya tidak lupa cara menggunakan command prompt untuk melakukan arahan bake.

1. Buka command prompt dan halakan direktori anda ke folder php anda. Sebagai contoh C:\php.

2. Jana arahan ini php.exe capaian ke folder cakephp\console\cake.php bake Sebagai contoh C:\php>php.exe C:\www\blog\cake\console\cake.php bake

Dan anda sudah boleh mula membakar kek!

PHP Meetup 2011 – Framework Shootout (Dari mata penganjur)

Kembali bersiaran dari ruangan yang sudah bersawang ini. Alhamdulillah, sudah seminggu berlalu sejak PHP Meetup 2011 berlangsung. Dari kaca mata saya selaku penganjur, ada ruang yang masih boleh saya dan juga zam3858 perbaiki. Jika mengikutkan pendaftaran rasmi pada hari itu, seramai 148 orang yang hadir. Haruslah diingatkan, ada juga diantara hadirin yang tidak mendaftar.

Bagi mereka yang tidak tahu, acara ini telah dianjurkan oleh komuniti PHP.net.my dengan kerjasama PHPCOE, Mimos Bhd. Penganjur ada 2+1 iaitu saya, zam3858 dan juga saudara Errazudin dari PHPCOE.

Alhamdulillah, kami berjaya mendapatkan penaja untuk acara kali ini. Experian Hitwise, Jmobile Sdn Bhd, Aist serta Primuscore. Terima kasih juga kepada para sahabat yang sudi berkongsi ilmu pada hari tersebut dan mengorbankan sabtu kalian untuk berehat.

Terima kasih juga kepada para hadirin yang juga sanggup memberikan sokongan pada acara kali ini. Selaku penganjur, saya amat terharu dengan jumlah kehadiran yang melangkaui jangkaan kami. Disini, saya ingin berkongsi sedikit apa yang berlaku sebelum 19/02/2011.

Semuanya bermula apabila saya, zam3858 dan hymns duduk minum dan terfikir. Tahun ini bila nak buat meetup? Zam3858 mencadangkan ianya diadakan 2 kali. awal tahun dan juga hujung tahun. Setelah bertanyakan pada teman-teman yang akan berkongsi ilmu, maka sebulat suara 19/02/2011 adalah tarikh yang sesuai.

Masa itu tinggal 3 minggu lagi sebelum hari berlakunya meetup. Yang menjadi kerisauan kami ialah kehadiran dibawah 50 orang. Tiada maknanya acara ini diadakan tanpa kehadiran peserta bukan?

Ketahuilah, mug untuk 50 orang pertama yang datang pada hari itu, hanya berjaya ditempah 3 hari sebelum hari meetup. Yeah kerja gila. Apa yang saya dengan zam3858 lakukan? Kami hanya berdua dan perlu menguruskan segalanya, ini kerja tidak bergaji, jadi pada masa yang sama kami juga perlu menyelesaikan kerja-kerja hakiki kami :) Terima kasih kepada Salimi dari AIST kerana membuat rekaan yang cantik untuk poster serta mug. Terima kasih kepada Marcel Leng kerana mendapatkan tajaan dari Experian Hitwise. Terima kasih kepada Azrad kerana mendapatkan tajaan dari Primuscore. Terima kasih kepada Misbah, kerana mendapatkan tajaan dari Jmobile. Terima kasih juga kepada Amran kerana mendapatkan tajaan dari AIST.

Jika ada yang mengatakan acara pendaftaran pada hari meetup tidak berapa efisien, maafkan kami kerana kami berdua hanya tidur jam 3 pagi sehari sebelumnya :) .

Maafkan juga makanan tidak mencukupi

Maafkan juga mug hanya untuk 50 orang. Itu sahaja yang kami mampu berikan. Ada rezeki akan datang, mungkin kami mampu memberikan mug atau tshirt untuk semua orang. :)

Selaku pengerusi majlis (sudah 2 tahun berturut-turut) maafkan saya sekiranya ada tersalah kata ketika mengacarakan PHP Meetup 2011 – Framework Shootout. Sekiranya ada diantara kalian yang hadir ingin menjadi pengerusi majlis pada masa akan datang, bolehlah hubungi saya :)

Ulasan dari kaca mata peserta

- http://noneey.blogspot.com/2011/02/php-meetup-2011-framework-shootout.html
- http://ismailsaleh.net/2011/02/28/php-meetup-framework-shootout-19-feb-2011-mimos/
- http://raficyber.blogspot.com/2011/02/php-meetup-2011-framework-shootout.html
- http://dewmandew.blogspot.com/2011/02/jom-bergaduh.html
- http://www.zakiyusof.com/2011/02/php-meetup-2011/
- http://www.munzir.net/entry/php-meetup-2011-malaysia
- http://kulainicknameku.blogspot.com/2011/02/php-meetup-2011-framework-shootout.html

Ulasan dari kaca mata presenter – http://azrilnazli.blogspot.com/2011/02/php-shootout-2011.html

Saya amat berharap dapat berjumpa dengan kalian pada acara seterusnya.

PhpHyppo – Yet Another Framework

Lama aku tidak mencatatkan apa-apa disini. Mari kita bercerita mengenai satu lagi rangkakerja terbaru yang ada di negara kita. PHPHyppo adalah sebuah rangkakerja yang dibangunkan oleh anak tempatan. PHPHyppo juga masih lagi bayi yang baru mula bertapak di dunia sumber terbuka. Jadi anda boleh menyumbang apa saja untuk pembangunan rangkakerja ini.

Muat turun PHPHyppo disini.

Aku ada menyumbang sedikit kod untuk rangkakerja ini. Sangat sedikit jika dibandingkan dengan usaha yang dilakukan oleh rakan kita ini. Tinggalkan CakePHP untuk seketika, ataupun CodeIgniter. Marilah kita bersama-sama membangunkan rangkakerja dari Malaysia agar kita ada satu produk yang boleh digunapakai dan dibanggakan di mata dunia. Yeay!

Hos Maya (Virtual Host) menggunakan Apache 2.2

Artikel kali ini akan menceritakan bagaimana mahu membolehkan Apache anda menggunakan fungsi hos maya. Sekiranya anda belum lagi melengkapkan Windows anda dengan Apache, rujuk artikel ini.

Mula-mula, buka fail C:\Windows\System32\drivers\etc\hosts. Tambah virtual.local seperti yang terdapat dalam gambar berikut.

Kemudian simpan (save) fail tersebut.

Keduanya, buka fail C:\Path\to\apache\conf\httpd.conf. Cari perkataan seperti ini

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

Buang sahaja tanda # di hadapan Include conf/extra/httpd-vhosts.conf. Kemudian simpan juga fail ini.

Selesai sudah bahagian yang mudah. Kini kita beralih ke bahagian yang agak sukar.

Buka fail C:\Path\to\apache\conf\extra\httpd-vhosts.conf.

Tambah ini ke dalam fail ini.


<VirtualHost *:80>
    ServerName virtual.local
    DocumentRoot "C:/Path/to/htdocs/virtual"
    ErrorLog "logs/virtual.local-error.log"
    CustomLog "logs/virtual2.local-error.log" common
</VirtualHost>

Simpan fail ini dan hentikan Apache dan hidupkan semula. Buat satu ‘folder’ bernama virtual di dalam C:/Path/to/htdocs. Kemudian ambil kod ini dan simpan sebagai index.php

<?php
  echo 'I\'m running from '. $_SERVER['HTTP_HOST'] .'<br />';
  echo 'My directory is '. $_SERVER['DOCUMENT_ROOT'];
?>

Cuba akses fail ini dengan menggunakan pautan ini http://virtual.local. Anda sepatutnya dapat melihat alamat pautan serta struktur ‘folder’ anda.

Ini baru sebahagian dari apa yang patut anda lakukan. Sekiranya anda cuba menggunakan PhpMyAdmin, pasti terdapat ralat. Anda perlu menambah ini pada fail httpd-vhosts.conf bagi membolehkan PhpMyAdmin anda berfungsi.


<VirtualHost *:80>
    ServerName jasdy.local
    DocumentRoot "C:/Dev/www/htdocs"
    ErrorLog "logs/virtual.local-error.log"
    CustomLog "logs/virtual2.local-error.log" common
</VirtualHost>

Wallah! Anda perlu menghentikan Apache serta menjalankannya semula. Segalanya akan berfungsi seperti yang sepatutnya.

Dropdown Dinamik (Dynamic Dropdown) atau Select

Artikel kali ini akan menceritakan bagaimana mahu menggunakan kod yang telah saya bina ini untuk kegunaan kalian. Mula-mula sekali muat turun fail ini.

Untuk mencuba fail tadi, kalian memerlukan apache, php dan juga mysql.

Bagaimana mahu menggunakan skrip ini?

1. Perlu memuatkan skrip jQuery versi 1.3.2 (sudah dibekalkan di dalam fail zip).

<script type="text/javascript" src="javascript/jquery-1.3.2.js"></script>

2. Perlu memuatkan skrip dynamicSelect (sudah dibekalkan di dalam fail zip).

<script type="text/javascript" src="javascript/jquery.dynamicSelect-1.2.0.js"></script>

3. Memanggil fungsi dynamicSelect.

<script type="text/javascript">
    $(document).ready(function() {
        $("#state").dynamicSelect({
          url:'district.php', //url ke halaman yang menjana JSON
          target:'district', //id dinamik dropdown
          msg:'Sedang Memproses', // secara auto ia akan memaparkan Loading... jika di setkan ia akan memaparkan mesej yang disetkan.
        })
      });
    </script>

Syarat menggunakan skrip ini ialah, sentiasa menggunakan $_GET['select_id'] untuk menerima parameter.

Yang kedua, format JSON haruslah seperti ini.

[{"id":"1","description":"BATU PAHAT"},
{"id":"2","description":"JOHOR BAHRU"}]

Selamat mencuba!

Tatasusunan (Array)

Tatasusunan (array) antara elemen penting dalam pengaturcaraan. Sebelum kita membincangkan bagaimana memanipulasikan tatasusunan, adalah lebih baik aku menceritakan apa itu tatasusunan.

Tatasusunan adalah satu kumpulan data yang mempunyai ciri-ciri yang sama.

Setiap tatasusunan mestilah dimulakan dengan array(). Berikut adalah contoh tatasusunan.

 

<?php
    $cars = array('Waja','Vios','Viva','City');
   ?>

Cara untuk memaparkan data dari tatasusunan pula adalah seperti berikut.

 

<?php
    $cars = array('Waja','Vios','Viva','City');

    echo $cars[1];
?>

Indeks didalam tatasusunan sentiasa bermula dengan 0.