การ config ตัวแปรของ app บน localhost และ host จริงๆ

ตอนแรกกลัวว่าโค้ดแบบนี้มันจะเป็นโค้ดขยะ ตอนที่อัพขึ้น host จริงๆ

ตอนแรก ๆ ก็พยายามที่จะสร้างสภาพแวดล้อมต่างๆ ของตัว app ให้เหมือนอยู่บน host จริง ให้มากที่สุด เพื่อที่ตอนอับขึ้น host จะได้ไม่ต้องมาแก้ config โค้ดใหม่ทุกครั้ง ในตอนที่พัฒนาโค้ดบน localhost ก็จะมีหลาย ๆ โปรเจคที่อยู่ในเครื่อง การจัดสรรค์งานที่อยุ่ในแต่ละ folder ไม่ให้มันตีกัน มันช่างเป็นเรื่องยากจริง ๆ

if($_SERVER['HTTP_HOST'] == 'localhost'){
	$config['base_url']	= 'http://'.$_SERVER['HTTP_HOST'].'/bcrpg/';
}else{
	$config['base_url']	= 'http://'.$_SERVER['HTTP_HOST'].'/';
}

อยากแรกต้องกำหนดสภาพแวดล้อมออกเป็นส่วน ๆ ก่อน แล้วค่อยกำหนดค่าเฉพาะให้กับสภาพแวดล้อมแต่ละส่วนเอาไปใช้

นึกถึง if ใน compiler ของภาษา c ขึ้นมาเลยทีเดียว นึกสงสัยตั้งนานว่า เราจะมีโอกาศได้ใช้คำสั่งแบบนี้ไหมเนี้ย

captcha ใน facebook app

tag fb:captcha


<fb:captcha showalways="true" />

การเอาไปใช้


<form action="index.php" method="post">
  <fb:captcha showalways="true" />
  <input type="submit" />
</form>

ผลลัพธ์

ถ้ากดปุ่ม (ส่ง) ข้อมูลใน form ไปแล้ว จะมีตัวแปรชื่อ fb_sig_captcha_grade=1 มันจะมีค่าเท่ากับ 1 เมื่อใส่รหัสถูกต้อง และจะไม่มีค่า หรือเป็นค่าว่าง เมื่อใส่รหัสไม่ถูก

วิธีรับค่าตัวแปรนี้ก็เหมือนใน php เลย $_POST['fb_sig_captcha_grade'] มันจะส่งค่าออกมาให้เอง โค้ดที่เขียนจะออกมาประมาณนี้


if(isset($_POST['fb_sig_captcha_grade'])):
     echo "รหัส captcha ถูกต้อง " . $_POST['fb_sig_captcha_grade']);
else:
    echo "รหัส captcha ไม่ถูกต้อง " . $_POST['fb_sig_captcha_grade']);
endif;

ในความหมายของ php อะไรที่มีค่าเป็น 1 หรือ 0 มันก็เท่ากับว่า True หรือ False นั้นเองแหละคับ
เอาไปปรับใช้ตามสไตล์ของแต่ละคนล่ะกัน

ดูใน FBML ของ facebook ได้ที่นี้เลยคับ
http://developers.facebook.com/docs/reference/fbml/captcha

การเข้าถึง tag input กับตัว array

ใน tag input ของ html

ผมสร้างตัวแปร ชื่อ seat แบบ array ในที่นี้ สร้างไว้ 3 ตัว ก็คือ seat[0], seat[1], seat[2]

<input type='hidden' name='seat[]' id='seat[]' value=''>
<input type='hidden' name='seat[]' id='seat[]' value=''>
<input type='hidden' name='seat[]' id='seat[]' value=''>

ในการเข้าถึงตัว element ของ tag input ต้องอ้างโดยใช้ name นะคับ จะใช้ document.getElementById ไม่ได้

แบบในตัวอย่างนี้นะคับ


var obj = document.getElementByName('seat[]');

ตัว method ของ array ตัวนี้มี item(n) คับ

หมายถึงการ อ้างถึงตัวของ object array ด้วย index ก็คือตัว n นั้นแหละคับ

ตัวอย่างก็จะประมาณว่า


var obj = document.getElementByName('seat[]');
var a_id = obj.item(0).id;
var a_name = obj.item(0).name;
var a_value = obj.item(0).value;

บทสรุป นะคับ read and write

การกำหนดค่าให้ obj.item(0).value = 0;
การอ่านค่าออกมา var a = obj.item(0).value;

ส่วน .length ตัวนี้เป็น attrib แบบ read only นะคับ แล้วเราก็ไม่มีเหตุผลใดๆ ที่จะไป กำหนดค่าให้กับมัน
อ่านค่าออกมานะคับ var num_arr = obj.length;

ตัวเดียวกันเลย ง่ายดี แฮะ ๆ

<script language='javascript'>
   var obj = document.getElementByName('seat[]');
   var a = '';
   for(var i=0; i <= obj.length; i++){
       obj.item(i).value = (i * 2);
   }

  for(var j = 0; j <= obj.lenght; j++){
      alert(obj.item(j).value);
  }
</script>
Get Adobe Flash playerPlugin by wpburn.com wordpress themes