4/21/2557

การอ่านค่า get parameter ทุกตัวที่ส่งมาจากฟอร์ม


ในบางครั้งใน PHP เราต้องการ อ่านค่า GET ที่ส่งมาทั้งหมดที่มาทั้งหมดทุกค่า
เราสามารถอ่านค่าทั้งหมดที่ส่งมาได้ดีงนี้

// วน loop แต่ละ parameter โดย
// key จะเป็นชื่อ parameter
// value จะเป็นค่าที่ส่งมาของแต่ละ  parameter
foreach ($_GET as $key => $value){

  $str.=$key."->".$value;
  $str.="<br />";

}
echo $str;//จะแสดงค่าที่ส่งมาแบบ GET ทั้งหมด

2/11/2557

การอ่านและแสดงไฟล์รูปที่ upload ด้วย FileReader (HTML5)

 
HTML5 ได้เพิ่มความสามารถให้เราอ่านไฟล์ที่ upload ได้ เราสามารถนำมาประยุต์ใช้เพื่อแสดงรูปภาพที่ผู้ใช้ upload มาทันทีโดยไม่ต้องทำงานที่ฝั่ง server ดังนี้

<input type='file'  onchange='openFile(event)'>
<!-- สร้าง Element สำหรับ Upload ไฟล์ โดยกำหนดให้ทำงานที่ function openFile เมื่อ User Upload  -->
<br />
<img id='output'><!-- สร้าง Element แสดงไฟล์ที่ User Upload -ขึ้นมา -->
<script>
    var openFile = function(event) { // สร้าง function openFile
    var reader = new FileReader(); //สร้าง object สำหรับ อ่านไฟล์
    reader.onload = function(event){//สั่งให้เริ่มอ่านไฟล์เมื่อมีการสรั้าง object  FileReader
        var dataURL = event.target.result;//อ่านไฟล์ที่ Upload
        document.getElementById('output').src = dataURL; //แสดงไฟล์ใน Element img
    };
    reader.readAsDataURL(event.target.files[0]);
  };
</script>

1/14/2557

การเขียนโปรแกรมหาอายุจากวันเกิด

ในการออกแบบฐานข้อมูลที่ดีเราไม่ควรจะออกแบบให้คอลัมของตารางมีความสัมพันธ์กันเอง เช่น เราไม่ควรออกแบบให้ตารางเก็บข้อมูลวันเกิด และอายุอยู่ในตารางเดียวกัน เพราะทั้งอันมีความเกี่ยวข้องกัน (dependency)  แต่หากเราดึงวันเกิดของลูกค้าจากฐานข้อมูลมาได้แล้วต้องการอายุของลูกค้าเราสามารถใช้โปรแกรม PHP คำนวนหาอายุของลูกค้าได้ดังนี้

$today = new DateTime(); //สร้าง object วันที่ปัจจุบัน
$birthdate = new DateTime($data["birth_date"]); //สร้าง object วันเกิด
$interval = $today->diff($birthdate); //หาความต่างของวันที่
echo $interval->format('%y ปี'); //แสดงวันที่ต่างเป็นปี

11/26/2556

การสร้า้งเอกสาร pdf ด้วย php

หากเราต้องการสร้าง เอกสาร .pdf  หรือ ออกรายงาน เป็น pdf  ด้วย php เราสามารถสร้างเอกสาร php ด้วย class FPDF ได้ดังนี้

1. Download zip ไฟล์จาก http://projectsoft.biz/fpdf.zip
2. Extract zip ไฟล์ไปไว้ใน folder เดียวกับไฟล์โปรแกรม php ที่ต้องการสร้างเอกสาร pdf ดังรูป



3. เขียน code สร้างไฟล์ .pdf ได้ดังนี้

<?php

define('FPDF_FONTPATH','fonts/');//กำหนดให้ ดึงไฟล์ fonts จาก folder fonts
include('fpdf.php');//ให้โปรแกรมเรียกใช้ class FPDF ได้

$pdf = new FPDF();//สร้าง object pdf 
$pdf->AddPage();//หาก เราใช้คำสั่ง  $pdf->AddPage("l"); จะได้ pdf ขนาด A4 เป็น แนวนอน

//เพิ่ม fontที่จะให้ใช้งานได้
$pdf->AddFont('angsana','','angsa.php');
$pdf->AddFont('angsana','B','angsab.php');
$pdf->AddFont('angsana','I','angsai.php');
$pdf->AddFont('angsana','BI','angsaz.php');

//เราใช้ method Cell ของ class FPDF เพื่อแสดงตัวอักษร
//$pdf->Cell(ความกว้างของกล่องข้อความ,ความสูงของกล่องข้อความ,iconv("UTF-8", "TIS-620","ข้อความ"),ขอบ);
//iconv("UTF-8", "TIS-620","ข้อความ") คือการแปลงการเข้ารหัสข้อความจาก UTF-8 เป็น TIS-620
//หาก ความกว้างของกล่องข้อความ และความสูงของกล่องข้อความเป็นศูนย์จะไม่มีความกว้างความยาวของกล่องข้อความ
//เช่น  $pdf->Cell(0,0,iconv("UTF-8", "TIS-620","ปกติ"));
//เราเลือกที่จะไม่ส่งค่าขอบได้ ตามตัวอย่างยรรทัดบน แต่ถ้าส่งค่าขอบไป เช่น cell นั้นจะแสดงขอบให้ เช่น
//$pdf->Cell(30,15,iconv("UTF-8", "TIS-620","ตัวหนาขีดเส้นใต้"),1);

$pdf->setXY(10,10);//แสดงข้อความห่างขอบซ้าย 10 ขอบบน 10
$pdf->SetFont('angsana','',14);//กำหนด font แบบปกติ  angsana ขนาด 14 
$pdf->Cell(0,0,iconv("UTF-8", "TIS-620","ปกติ"));

$pdf->setXY(10,15);//แสดงข้อความห่างขอบซ้าย 10 ขอบบน 15
$pdf->SetFont('angsana','B',14);//กำหนด font angsana ตัวหนา ขนาด 14 
$pdf->Cell(0,0,iconv("UTF-8", "TIS-620","ตัวหนา"));

$pdf->setXY(10,20);//แสดงข้อความห่างขอบซ้าย 10 ขอบบน 20
$pdf->SetFont('angsana','I',14);//กำหนด font angsana ตัวเอียง ขนาด 14 
$pdf->Cell(0,0,iconv("UTF-8", "TIS-620","ตัวเอียง"));

$pdf->setXY(10,25);//แสดงข้อความห่างขอบซ้าย 10 ขอบบน 25
$pdf->SetFont('angsana','BU',14);//กำหนด font angsana ตัวหนาขีดเส้นใต้ ขนาด 14 
$pdf->Cell(30,15,iconv("UTF-8", "TIS-620","ตัวหนาขีดเส้นใต้"),1);
$pdf->SetFont('angsana','UI',14);//กำหนด font angsana ตัวเอียงขีดเส้นใต้ ขนาด 14
$pdf->Cell(30,15,iconv("UTF-8", "TIS-620","ตัวเอียงขีดเส้นใต้"),1);

$pdf->Image('http://projectsoft.biz/images/code2.jpg',80,60,100,40);//แสดงรูป
//$pdf->Image('path ไฟล์',ห่างจากขอบซ้าย,ห่างจากจากขอบบน,ความกว้างของรูป,ความสูงของรูป);

$pdf->Output();//สั่งพิมพ์ pdf

?>

ผลของโปรแกรมจะได้ดังนี้




10/22/2556

การสร้าง textbox ที่สามารถพิมพ์ได้เฉพาะตัวเลขทศนิยมด้วย jquery


หากต้องการ textbox ที่สามารถพิมพ์ได้เฉพาะ ตัวเลขทศนิยม เราสามารถใช้ javascript และ jquery ได้ดังนี้


<input type="text" class="float" /><!-- สร้าง textbox กำหนดให้มี class เป็น   float -->

<script type="text/javascript" >

$(".float").bind( "keyup", function(e) {
  
    var ch=$(this).val();  //เก็บข้อความใน textbox ไว้ในตัวแปร ch
    var digit;  //ตัวแปรสำหรับเก็บตัวอักษรแต่ละอักขระในตัวแปร ch

    // วน loop หาแต่ละตัวอักขระใน text box
    for(var i=0 ; i<ch.length ; i++)
    {
        digit = ch.charAt(i)
      
        if(digit >="0" && digit <="9") //แต่ละอักขระอยู่ในช่วง 0-9  และเป็นทศนิยม หรือไม่
        {
          
        }else if(digit!=".")
        {
            $(this).val($(this).val().replace(digit,""));
            //ถ้าไม่ได้อยู่ในช่วง 0-9 และไม่ได้เป็นทศนิยมจะตัดตัวอักขระตัวนั้นออก
        }
      
    }
  
});

</script>

9/17/2556

การสร้าง Android Application โดยใช้ HTML

เราสามารถสร้าง Android Application โดยใช้ HTML ได้จาก eclipse ide ดังนี้

1. ใน folder project ของ Android Application ที่สร้างขึ้นจาก eclipse ide แก้ไฟล์ AndroidManifest.xml



ใส่   <uses-permission android:name="android.permission.INTERNET" /> เพื่อให้ Application ของเราสามารถเชื่อมต่อกับ Internet ได้

2. แก้ไฟล์ใน  folder \res\layout ไฟล์ activity_main.xml 


เพิ่ม  <WebView

        android:id="@+id/webView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true" /> เข้าไปสำหรับแสดงข้อมูลไฟล์ HTML

3.  ที่ folder assets ให้สร้าง folder www และใน folder www ให้สร้างไฟล์ index.html ซึ่งสามารถใส่ code  HTML ลงไปที่ต้องการให้แสดงใน Application รวมถึงไฟล์รูป ไฟล์ style sheet ต่างๆ ก็สามารถใส่ได้ใน foler www ที่สร้างขึ้นมานี้ด้วย


4. แก้ไฟล์ MainActivity.java ในโฟลเดอร์ src และ โฟลเดอร์ย่อยตามชื่อ package ให้เพิ่ม code เพื่อให้ เอา code HTML ในไฟล์ asset/www/index.html มาแสดง
                
        private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/www/index.html");
}

ใน class MainActivity 

8/07/2556

การตรวจสอบการกด enter key ใน text box ด้วย javascript

เพื่อความง่ายในการใช้งาน webapplication  ของ user เพื่อให้ให้ user ต้องใช้ mouse click ที่ปุ่ม เราอาจสั่งให้โปรแกรมทำงาน แบบเดียวกับที่กดปุ่ม เมื่อผู้ใช้กด enter ที่ key บอร์ด โดยมี  code ในการตรวจสอบการกด enter ดังนี้

<input onkeypress="return check_enter(event)"  />

<script>

function check_enter(e)//กำหนดให้  function check_enter ทำงานเมื่อ มีการกด keyboard
{
if (e.keyCode == 13) { //ถ้า e.keyCode เป็น 13 แสดงว่า user กด enter
alert('You press enter ! ');
        }
}
</script>