จัดการ Ajax ใน Opencart

วันนี้มีโอกาสได้เขียนระบบจัดการ stock ใน opencart ลูกค้าอยากได้ประมาณว่า ใส่รหัสสินค้า แล้วกดดึงข้อมูล สินค้าก็จะมาแสดงด้านล่างโดยไม่ต้องรีเฟรชฟน้าเว็บ

ก็บอกลูกค้าไปว่าถ้าจะทำแบบนั้นมันยาก(ขี้เกียจ) อาจจะต้องทำแบบอื่นเช่น ทำเป็น checkbox ให้ติ๊กเลือก แล้วกดดึงข้อมูล บลา ๆๆๆ

วันนี้เลยลองดูคือหัดใช้ Ajax ($.ajax{…}) ตอนแรกก็คิดว่ายากอยู่ เพราะ ajax บอกตรงๆว่าอ่อนมาก(คนเขียนโง่) เวลาใช้งานก็เอาพวกสำเร็จรูปมาใช้(Jquery ยอดฮิต)

มาวันนี้ลองเขียนเองดู ได้ประมาณนี้

หลักการคือ

1.สร้างฟังก์ชั่นใน controller ที่เราจะเรียกใช้งานก่อน เช่น ใน controller ของ product ผมอยากจะดึงชื่อสินค้ามาแสดงตาม รหัสโมเดลของสินค้านั้นๆ(พิมพ์ รหัส ชื่อและรายละเอียดก็จะแสดงออกมา)

 

public function getProductByModel(){//เป็น public เพราะจะให้คนอื่นมาใช้งานได้ด้วย

 

$model = $this->request->[get|post]['model'];//เป็นแบบ get หรือ post ขึ้นอยู่กับว่าเราใช้ ajax ส่งค่ามาแบบไหน

$result = $this->model_catalog_product->getProductByModel($model);//สมมติว่าสร้างฟังก์ชั่นตัวนี้แล้วน่ะ

$json = array();//พระเอกของงานออกโรงแล้ว

$jason[] = array(

‘product_id’ => $result['product_id'],

‘name’ => $result['name']

);

 

$this->load->library(‘json’);// พระเอกลุย

$this->response->setOutput(Json::encode($json));

}

 

หลังจากนั้นมาดูที่ไฟล์ แสดงผลกันว่าเราจะส่งค่ามันมาได้ยังไง

 

<script type=”text/javascript”>

function getProduct() {
$.ajax({
url: ‘index.php?route=catalog/product/getProductByModel&model=’ + $(‘#model’).attr(‘value’),
dataType: ‘json’,
success: function(data) {

จะต้มยำทำแกงก็จัดตรงนี้เลย

………………………………

………………………………

}

});

//–></script>

เวลาเรียกใช้งานก็ onclick”getProduct();”

เสร็จแล้วครับ เหอะๆๆๆ ง่ายกว่าเดิมอีก

 

สรุปทิ้งท้ายคือ เรียก lib(json) มาใช้งานนั้นเอง(ไม่ต้องเขียนเองอีกแล้ว เดี๋ยวจะโง่กว่าเดิม)

Don't be shellfish...Share on FacebookTweet about this on TwitterShare on Google+Digg thisPin on PinterestShare on Reddit
Post Tagged with ,