<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>AJAX Learning</title><link>http://www.ninenik.com</link><description>รวมบทความ AJAX </description><language>th-TH</language><lastBuildDate>Fri, 10 Feb 2012 03:01:58 +0700</lastBuildDate><copyright>Copyright ninenik.com</copyright><image><title>CMSPro เว็บไซต์สำเร็จรูป</title><url>http://www.ninenik.com/images/logo_ninenik.gif</url><link>http://www.ninenik.com</link></image><item><title>การสร้าง ajax dictionary จาก longdo ด้วย jQuery </title><link>http://www.ninenik.com/การสร้าง_ajax_dictionary_จาก_longdo_ด้วย_jQuery_-389.html</link><description><![CDATA[<p>ตัวอย่างการใช้งานต่อไปนี้ เป็นการนำ ระบบค้นหาคำศัพท์ จากเว็บไซต์ <br />
<a href="http://dict.longdo.com/">http://dict.longdo.com/</a></p>
<p>ดู Longdo Dict Application Programming Interface (API) ได้ที่<br />
<a href="http://dict.longdo.com/page/api">http://dict.longdo.com/page/api</a></p>
<p>เหมาะสำหรับใครที่ต้องการนำระบบค้นหาคำศัพท์ dictionary รูปแบบ ajax ไปตกแต่งเว็บไซต์ <br />
โดยเฉพาะเว็บไซต์เกี่ยวกับการศึกษา</p>
<p>โดยจุดประสงค์หลักของเนื้อหา คือ ทำความคุ้นเคย กับการใช้งาน ajax ใน jQuery ซึ่งในเว็บไซต์ ก็ได้<br />
นำเสนอไปหลายครั้ง หลายรูปแบบ แล้ว</p>
<p>ตัวอย่าง</p>
<p>

<style type="text/css">
div#myblock_dict{
	font-family:tahoma, "Microsoft Sans Serif", sans-serif, Verdana;
	font-size:12px;	
	margin:auto;
	width:350px;	
}
input#translate_it{
	background-color:#F6C;
	color:#FFF;	
	border:1px groove #F9C;
	cursor:pointer;
}
div#input_search{
	background-color:#000;
	color:#FFF;
	text-align:center;
}
div#context_search{
	border:1px solid #F9C;
	height:300px;
	overflow:auto;
}
div#context_search{
	font-family:tahoma, "Microsoft Sans Serif", sans-serif, Verdana;
	font-size:12px;	
	padding:5px;
	background-color:#FDEDFE;
}
div#context_search a{
	margin-left:3px !important;
	color:#F09;	
}
div#context_search td{
	padding:5px !important;
}
</style>

<!--2.ส่วนของ element องค์ประกอบในการใช้งาน-->
<div id="myblock_dict">
<div id="input_search">คำค้น
  <input type="text" name="keyword_q" id="keyword_q" />
  <input type="button" name="translate_it" id="translate_it" value="แปล" />
</div>
<div id="context_search">

</div>
</div>


<!--3.ส่วนของ javascript โดยใช้งานผ่าน jQuery-->
<script type="text/javascript">
$(function(){
		// กำหนดตัวแปรสำหรับแสดงรูปกำลังโหลด
		var loading_img='<center>';
		loading_img+='<img src="http://static.ak.fbcdn.net/rsrc.php/z5R48/hash/ejut8v2y.gif"/>';
		loading_img+='</center>';
		$("input#keyword_q").click(function(){ // เมื่อคลิกที่ช่องคำค้น 
			// เพื่อสะดวกในการพิมพ์คำค้นใหม่ได้เลย
			$(this).select(); //  ถ้ามีข้อความอยู่ ให้ทำการเลือกข้อความนั้น
			$("#context_search").html(""); //  ล้างค่าข้อความผลลัพธ์เดิม ถ้ามี
		});
		$("input#translate_it").click(function(){  // เมื่อคลิกที่ปุ่มคำว่า แปล
			$("#context_search").html(loading_img); // แสดงรูปกำลังโหลดในส่วนผลลัพธ์
			// ใช้ ajax ใน jQuery ส่งข้อมูลแบบ get
			$.get("demo/ajax_translate.php",{keyword:$.trim($("#keyword_q").val())},function(data){
				$("#context_search").html(data); // แสดงผลลัพธ์จากการค้นหา
			});
		});
		
		$("#keyword_q").keyup(function(event){
			if(event.keyCode==13){ // เมื่อกดปุ่ม Enter ให้เริ่มการค้นหา
				$("#context_search").html(loading_img); // แสดงรูปกำลังโหลดในส่วนผลลัพธ์
				$.get("demo/ajax_translate.php",{keyword:$.trim($("#keyword_q").val())},function(data){
					$("#context_search").html(data); // แสดงผลลัพธ์จากการค้นหา
				});			
			}
		});
		
		// เมื่อคลิกที่ลิ้งค์ ในผลลัพธ์
		$("div#context_search a").live("click",function(){
			var text_search=$.trim($(this).text()); // นำคำจากลิ้งค์ที่คลิก มาเก็บในตัวแปร
			$("#context_search").html(loading_img); // แสดงรูปกำลังโหลดในส่วนผลลัพธ์
			$("#keyword_q").val(text_search); // นำคำจากลิ้งค์ไปแสดงที่ช่อง คำค้น
			$.get("demo/ajax_translate.php",	{keyword:text_search },function(data){
				$("#context_search").html(data); // แสดงผลลัพธ์จากการค้นหา
			});		
			return false;			
		});
});
</script><br />
วิธีการ<br />
1.สร้างไฟล์ php ชื่อ ajax_translate.php ดังโค้ดด้านล่าง (คำอธิบายแสดงในโค้ด)</p>
<pre class="php:controls" name="code">
&lt;?php
header(&quot;Content-type:text/html; charset=UTF-8&quot;);        
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);       
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);       
// ตรวจสอบว่ามีการส่งคำค้นมาหรือไม่
if(isset($_GET['keyword']) &amp;&amp; trim($_GET['keyword'])!=&quot;&quot;){
	$keyword=trim($_GET['keyword']);
	// นำผลลัพธ์การค้นหา จาก longdo dictionary มาไว้ในตัวแปร
	$data=file_get_contents(&quot;http://dict.longdo.com/mobile.php?search=&quot;.$keyword);	//
	echo strip_tags($data,&quot;&lt;a&gt;&lt;table&gt;&lt;td&gt;&lt;tr&gt;&lt;font&gt;&lt;style&gt;&lt;meta&gt;&lt;br&gt;&quot;); // แสดงส่วนของเนื้อหาที่จำเป็นต้องแสดง
}else{ // กรณีไม่มีการส่งคำค้นมา
	echo &quot;โปรดระบุคำที่ต้องการแปล&quot;;	// แสดงข้อความแจ้งเตือน
}
?&gt;</pre>
<p>2.สร้างไฟล์สำหรับทดสอบ demo_ajax_translate.php ตามโค้ดด้านล่าง กรุณาอ่านคำแนะนำในโค้ด<br />
โดยจะมีอยู่ 3 ส่วน คือ<br />
1.ส่วนของ css สำหรับกำหนดรูปแบบ สีข้อความ พื้นหลัง หรืออื่นๆ ตามต้องการ<br />
2.ส่วนของ element องค์ประกอบในการใช้งาน<br />
3.ส่วนของ javascript โดยใช้งานผ่าน jQuery</p>
<pre class="php:controls" name="code">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;longdo ajax dictionary&lt;/title&gt;
&lt;!--1.ส่วนของ css สำหรับกำหนดรูปแบบ สีข้อความ พื้นหลัง หรืออื่นๆ ตามต้องการ--&gt;
&lt;style type=&quot;text/css&quot;&gt;
div#myblock_dict{
	font-family:tahoma, &quot;Microsoft Sans Serif&quot;, sans-serif, Verdana;
	font-size:12px;	
	margin:auto;
	width:350px;	
}
input#translate_it{
	background-color:#F6C;
	color:#FFF;	
	border:1px groove #F9C;
	cursor:pointer;
}
div#input_search{
	background-color:#000;
	color:#FFF;
	text-align:center;
}
div#context_search{
	border:1px solid #F9C;
	height:300px;
	overflow:auto;
}
div#context_search{
	font-family:tahoma, &quot;Microsoft Sans Serif&quot;, sans-serif, Verdana;
	font-size:12px;	
	padding:5px;
	background-color:#FDEDFE;
}
div#context_search a{
	margin-left:3px !important;
	color:#F09;	
}
div#context_search td{
	padding:5px !important;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;


&lt;!--2.ส่วนของ element องค์ประกอบในการใช้งาน--&gt;
&lt;div id=&quot;myblock_dict&quot;&gt;
&lt;div id=&quot;input_search&quot;&gt;คำค้น
  &lt;input type=&quot;text&quot; name=&quot;keyword_q&quot; id=&quot;keyword_q&quot; /&gt;
  &lt;input type=&quot;button&quot; name=&quot;translate_it&quot; id=&quot;translate_it&quot; value=&quot;แปล&quot; /&gt;
&lt;/div&gt;
&lt;div id=&quot;context_search&quot;&gt;

&lt;/div&gt;
&lt;/div&gt;


&lt;!--3.ส่วนของ javascript โดยใช้งานผ่าน jQuery--&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
		// กำหนดตัวแปรสำหรับแสดงรูปกำลังโหลด
		var loading_img='<center>';
		loading_img+='<img src="http://static.ak.fbcdn.net/rsrc.php/z5R48/hash/ejut8v2y.gif"/>';
		loading_img+='</center>';
		$(&quot;#keyword_q&quot;).click(function(){ // เมื่อคลิกที่ช่องคำค้น 
			// เพื่อสะดวกในการพิมพ์คำค้นใหม่ได้เลย
			$(this).select(); //  ถ้ามีข้อความอยู่ ให้ทำการเลือกข้อความนั้น
			$(&quot;#context_search&quot;).html(&quot;&quot;); //  ล้างค่าข้อความผลลัพธ์เดิม ถ้ามี
		});
		$(&quot;#translate_it&quot;).click(function(){  // เมื่อคลิกที่ปุ่มคำว่า แปล
			$(&quot;#context_search&quot;).html(loading_img); // แสดงรูปกำลังโหลดในส่วนผลลัพธ์
			// ใช้ ajax ใน jQuery ส่งข้อมูลแบบ get
			$.get(&quot;ajax_translate.php&quot;,{keyword:$.trim($(&quot;#keyword_q&quot;).val()) },function(data){
				$(&quot;#context_search&quot;).html(data); // แสดงผลลัพธ์จากการค้นหา
			});
		});
		
		$(&quot;#keyword_q&quot;).keyup(function(event){
			if(event.keyCode==13){ // เมื่อกดปุ่ม Enter ให้เริ่มการค้นหา
				$(&quot;#context_search&quot;).html(loading_img); // แสดงรูปกำลังโหลดในส่วนผลลัพธ์
				$.get(&quot;ajax_translate.php&quot;,{keyword:$.trim($(&quot;#keyword_q&quot;).val())},function(data){
					$(&quot;#context_search&quot;).html(data); // แสดงผลลัพธ์จากการค้นหา
				});				

			}
		});
		
		// เมื่อคลิกที่ลิ้งค์ ในผลลัพธ์
		$(&quot;div#context_search a&quot;).live(&quot;click&quot;,function(){
			var text_search=$.trim($(this).text()); // นำคำจากลิ้งค์ที่คลิก มาเก็บในตัวแปร
			$(&quot;#context_search&quot;).html(loading_img); // แสดงรูปกำลังโหลดในส่วนผลลัพธ์
			$(&quot;#keyword_q&quot;).val(text_search); // นำคำจากลิ้งค์ไปแสดงที่ช่อง คำค้น
			$.get(&quot;ajax_translate.php&quot;,{keyword:text_search},function(data){
            	$(&quot;#context_search&quot;).html(data); // แสดงผลลัพธ์จากการค้นหา
			});		
			return false;			
		});
});
&lt;/script&gt;


&lt;/body&gt;
&lt;/html&gt;</pre>
<p>&nbsp;</p>]]></description><pubDate>Mon, 27 Dec 2010 12:16:55 +0700</pubDate></item><item><title>แสดงการแบ่งหน้า แบบ ajax ด้วย jQuery php และ css</title><link>http://www.ninenik.com/แสดงการแบ่งหน้า_แบบ_ajax_ด้วย_jQuery_php_และ_css-358.html</link><description><![CDATA[<p>ตัวอย่างโค้ดต่อไปนี้เป็นแนวทางสำหรับ การใช้งาน การแบ่งหน้า แบบ ajax <br />
สามารถนำไปประยุกต์เพิ่มลูกเล่นเพิ่มเติม ได้ตามต้องการ</p>
<p><strong>ตัวอย่าง&nbsp; </strong><a href="http://www.ninenik.com/demo/page_navi3_demo_ajax.php">http://www.ninenik.com/demo/page_navi3_demo_ajax.php</a></p>
<p><strong>css ส่วนของการแบ่งหน้า</strong><br />
&nbsp;</p>
<pre class="css:controls" name="code">
&lt;style type=&quot;text/css&quot;&gt;
.browse_page{
	clear:both;
	margin-left:12px;
	height:35px;
	margin-top:5px;
	display:block;
}
.browse_page a,.browse_page a:hover{
	display:block;
	height:18px;
	width:18px;
	font-size:10px;
	float:left;
	margin-right:2px;
	border:1px solid #CCCCCC;
	background-color:#F4F4F4;
	color:#333333;
	text-align:center;
	line-height:18px;
	font-weight:bold;
	text-decoration:none;
}
.browse_page a:hover{
	border:1px solid #0A85CB;
	background-color:#0A85CB;
	color:#FFFFFF;
}
.browse_page a.selectPage{
	display:block;
	height:18px;
	width:18px;
	font-size:10px;
	float:left;
	margin-right:2px;
	border:1px solid #0A85CB;
	background-color:#0A85CB;
	color:#FFFFFF;
	text-align:center;
	line-height:18px;
	font-weight:bold;
}
.browse_page a.SpaceC{
	display:block;
	height:18px;
	width:18px;
	font-size:10px;
	float:left;
	margin-right:2px;
	border:0px dotted #0A85CB;
	font-size:11px;
	background-color:#FFFFFF;
	color:#333333;
	text-align:center;
	line-height:18px;
	font-weight:bold;
}
.browse_page a.naviPN{
	width:50px;
	font-size:12px;
	display:block;
	height:18px;
	float:left;
	border:1px solid #0A85CB;
	background-color:#0A85CB;
	color:#FFFFFF;
	text-align:center;
	line-height:18px;
	font-weight:bold;	
}
&lt;/style&gt;</pre>
<p><strong>ส่วนของการแบ่งหน้าด้วย php</strong><br />
&nbsp;</p>
<pre class="php:controls" name="code">
&lt;?php
$link=mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;test&quot;);
mysql_select_db(&quot;test&quot;);
mysql_query(&quot;set character set utf8&quot;);
?&gt;
&lt;?php   
// สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า   
function page_navigator($before_p,$plus_p,$total,$total_p,$chk_page){   
	global $e_page;
	global $querystr;
	$urlfile=&quot;ajax_data.php&quot;; // ส่วนของไฟล์เรียกใช้งาน ด้วย ajax (ajax_dat.php)
	$per_page=10;
	$num_per_page=floor($chk_page/$per_page);
	$total_end_p=($num_per_page+1)*$per_page;
	$total_start_p=$total_end_p-$per_page;
	$pPrev=$chk_page-1;
	$pPrev=($pPrev&gt;=0)?$pPrev:0;
	$pNext=$chk_page+1;
	$pNext=($pNext&gt;=$total_p)?$total_p-1:$pNext;		
	$lt_page=$total_p-4;
	if($chk_page&gt;0){  
		echo &quot;&lt;a  href='$urlfile?s_page=$pPrev&amp;querystr=&quot;.$querystr.&quot;' class='naviPN'&gt;Prev&lt;/a&gt;&quot;;
	}
	for($i=$total_start_p;$i&lt;$total_end_p;$i++){  
		$nClass=($chk_page==$i)?&quot;class='selectPage'&quot;:&quot;&quot;;
		if($e_page*$i&lt;=$total){
		echo &quot;&lt;a href='$urlfile?s_page=$i&amp;querystr=&quot;.$querystr.&quot;' $nClass  &gt;&quot;.intval($i+1).&quot;&lt;/a&gt; &quot;;   
		}
	}		
	if($chk_page&lt;$total_p-1){
		echo &quot;&lt;a href='$urlfile?s_page=$pNext&amp;querystr=&quot;.$querystr.&quot;'  class='naviPN'&gt;Next&lt;/a&gt;&quot;;
	}
}   
?&gt;
&lt;div id=&quot;showData&quot; style=&quot;width:550px;margin:auto;padding:10px;border:1px solid #CCC;&quot;&gt;
&lt;?php
//////////////////////////////////////// เริ่มต้น ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax
?&gt;
&lt;ul&gt;
&lt;?php
$q=&quot;select * from province_th where 1&quot;;
$q.=&quot; ORDER BY province_id  &quot;;
$qr=mysql_query($q);
$total=mysql_num_rows($qr);
$e_page=10; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า   
if(!isset($_GET['s_page'])){   
	$_GET['s_page']=0;   
}else{   
	$chk_page=$_GET['s_page'];     
	$_GET['s_page']=$_GET['s_page']*$e_page;   
}   
$q.=&quot; LIMIT &quot;.$_GET['s_page'].&quot;,$e_page&quot;;
$qr=mysql_query($q);
if(mysql_num_rows($qr)&gt;=1){   
	$plus_p=($chk_page*$e_page)+mysql_num_rows($qr);   
}else{   
	$plus_p=($chk_page*$e_page);       
}   
$total_p=ceil($total/$e_page);   
$before_p=($chk_page*$e_page)+1;  
?&gt;
&lt;?php

while($rs=mysql_fetch_array($qr)){
?&gt;
&lt;li&gt;&lt;?=$rs['province_name']?&gt;&lt;/li&gt;
&lt;?php } ?&gt;
&lt;/ul&gt;


&lt;?php if($total&gt;0){ ?&gt;
&lt;div class=&quot;browse_page&quot;&gt;
 &lt;?php   
 // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า   
  page_navigator($before_p,$plus_p,$total,$total_p,$chk_page);    
  ?&gt; 
&lt;/div&gt;
&lt;?php } ?&gt;
&lt;?php
////////////////////////////////////////////  จบ ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax
?&gt;

&lt;/div&gt;</pre>
<p><strong>ส่วนของการใช้งาน ajax สำหรับโหลดไฟล์ตามหน้าที่ต้องการ</strong><br />
&nbsp;</p>
<pre class="javascript:controls" name="code">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	 $(&quot;.browse_page a&quot;).live(&quot;click&quot;,function(event){
		 event.preventDefault();
		 var url=$(this).attr(&quot;href&quot;);
//		 แสดงแบบปกติ
//		 $(&quot;#showData&quot;).load(url,function(){
//			 
//		 });

//		แสดงแบบ effect  สามารถประยุกต์ effect หรือลูกเล่นอื่นๆ ตามต้องการ
		 $(&quot;#showData&quot;).animate({
			 opacity:0
		 },100,function(){
			 $(&quot;#showData&quot;).load(url,function(){
				$(&quot;#showData&quot;).animate({
			 		opacity:1
				 },200);
			 });			 
		 });

		 return false;
	 });
});
&lt;/script&gt;</pre>
<p><strong>โค้ดไฟล์ page_navi3_demo_ajax.php ทั้งหมด (รวม 3 ส่วนข้างต้น)</strong><br />
&nbsp;</p>
<pre class="php:controls" name="code">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;link rel=&quot;canonical&quot; href=&quot;http://www.ninenik.com/demo/page_navi3_demo.php&quot;/&gt;
&lt;title&gt;ฟังก์ชัน php แบ่งหน้า แบบ ajax แต่งด้วย css สวยๆ&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
.browse_page{
	clear:both;
	margin-left:12px;
	height:35px;
	margin-top:5px;
	display:block;
}
.browse_page a,.browse_page a:hover{
	display:block;
	height:18px;
	width:18px;
	font-size:10px;
	float:left;
	margin-right:2px;
	border:1px solid #CCCCCC;
	background-color:#F4F4F4;
	color:#333333;
	text-align:center;
	line-height:18px;
	font-weight:bold;
	text-decoration:none;
}
.browse_page a:hover{
	border:1px solid #0A85CB;
	background-color:#0A85CB;
	color:#FFFFFF;
}
.browse_page a.selectPage{
	display:block;
	height:18px;
	width:18px;
	font-size:10px;
	float:left;
	margin-right:2px;
	border:1px solid #0A85CB;
	background-color:#0A85CB;
	color:#FFFFFF;
	text-align:center;
	line-height:18px;
	font-weight:bold;
}
.browse_page a.SpaceC{
	display:block;
	height:18px;
	width:18px;
	font-size:10px;
	float:left;
	margin-right:2px;
	border:0px dotted #0A85CB;
	font-size:11px;
	background-color:#FFFFFF;
	color:#333333;
	text-align:center;
	line-height:18px;
	font-weight:bold;
}
.browse_page a.naviPN{
	width:50px;
	font-size:12px;
	display:block;
	height:18px;
	float:left;
	border:1px solid #0A85CB;
	background-color:#0A85CB;
	color:#FFFFFF;
	text-align:center;
	line-height:18px;
	font-weight:bold;	
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;?php
$link=mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;test&quot;);
mysql_select_db(&quot;test&quot;);
mysql_query(&quot;set character set utf8&quot;);
?&gt;
&lt;?php   
// สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า   
function page_navigator($before_p,$plus_p,$total,$total_p,$chk_page){   
	global $e_page;
	global $querystr;
	$urlfile=&quot;ajax_data.php&quot;; // ส่วนของไฟล์เรียกใช้งาน ด้วย ajax (ajax_dat.php)
	$per_page=10;
	$num_per_page=floor($chk_page/$per_page);
	$total_end_p=($num_per_page+1)*$per_page;
	$total_start_p=$total_end_p-$per_page;
	$pPrev=$chk_page-1;
	$pPrev=($pPrev&gt;=0)?$pPrev:0;
	$pNext=$chk_page+1;
	$pNext=($pNext&gt;=$total_p)?$total_p-1:$pNext;		
	$lt_page=$total_p-4;
	if($chk_page&gt;0){  
		echo &quot;&lt;a  href='$urlfile?s_page=$pPrev&amp;querystr=&quot;.$querystr.&quot;' class='naviPN'&gt;Prev&lt;/a&gt;&quot;;
	}
	for($i=$total_start_p;$i&lt;$total_end_p;$i++){  
		$nClass=($chk_page==$i)?&quot;class='selectPage'&quot;:&quot;&quot;;
		if($e_page*$i&lt;=$total){
		echo &quot;&lt;a href='$urlfile?s_page=$i&amp;querystr=&quot;.$querystr.&quot;' $nClass  &gt;&quot;.intval($i+1).&quot;&lt;/a&gt; &quot;;   
		}
	}		
	if($chk_page&lt;$total_p-1){
		echo &quot;&lt;a href='$urlfile?s_page=$pNext&amp;querystr=&quot;.$querystr.&quot;'  class='naviPN'&gt;Next&lt;/a&gt;&quot;;
	}
}   
?&gt;
&lt;div id=&quot;showData&quot; style=&quot;width:550px;margin:auto;padding:10px;border:1px solid #CCC;&quot;&gt;
&lt;?php
//////////////////////////////////////// เริ่มต้น ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax
?&gt;
&lt;ul&gt;
&lt;?php
$q=&quot;select * from province_th where 1&quot;;
$q.=&quot; ORDER BY province_id  &quot;;
$qr=mysql_query($q);
$total=mysql_num_rows($qr);
$e_page=10; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า   
if(!isset($_GET['s_page'])){   
	$_GET['s_page']=0;   
}else{   
	$chk_page=$_GET['s_page'];     
	$_GET['s_page']=$_GET['s_page']*$e_page;   
}   
$q.=&quot; LIMIT &quot;.$_GET['s_page'].&quot;,$e_page&quot;;
$qr=mysql_query($q);
if(mysql_num_rows($qr)&gt;=1){   
	$plus_p=($chk_page*$e_page)+mysql_num_rows($qr);   
}else{   
	$plus_p=($chk_page*$e_page);       
}   
$total_p=ceil($total/$e_page);   
$before_p=($chk_page*$e_page)+1;  
?&gt;
&lt;?php

while($rs=mysql_fetch_array($qr)){
?&gt;
&lt;li&gt;&lt;?=$rs['province_name']?&gt;&lt;/li&gt;
&lt;?php } ?&gt;
&lt;/ul&gt;


&lt;?php if($total&gt;0){ ?&gt;
&lt;div class=&quot;browse_page&quot;&gt;
 &lt;?php   
 // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า   
  page_navigator($before_p,$plus_p,$total,$total_p,$chk_page);    
  ?&gt; 
&lt;/div&gt;
&lt;?php } ?&gt;
&lt;?php
////////////////////////////////////////////  จบ ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax
?&gt;

&lt;/div&gt;


&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	 $(&quot;.browse_page a&quot;).live(&quot;click&quot;,function(event){
		 event.preventDefault();
		 var url=$(this).attr(&quot;href&quot;);
//		 แสดงแบบปกติ
//		 $(&quot;#showData&quot;).load(url,function(){
//			 
//		 });

//		แสดงแบบ effect  สามารถประยุกต์ effect หรือลูกเล่นอื่นๆ ตามต้องการ
		 $(&quot;#showData&quot;).animate({
			 opacity:0
		 },100,function(){
			 $(&quot;#showData&quot;).load(url,function(){
				$(&quot;#showData&quot;).animate({
			 		opacity:1
				 },200);
			 });			 
		 });

		 return false;
	 });
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><strong>ส่วนของไฟล์เรียกใช้งาน ด้วย ajax (ajax_dat.php)</strong><br />
&nbsp;</p>
<pre class="php:controls" name="code">
&lt;?php
header(&quot;Content-type:text/html; charset=UTF-8&quot;);        
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);       
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);       
?&gt;
&lt;?php
$link=mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;test&quot;);
mysql_select_db(&quot;test&quot;);
mysql_query(&quot;set character set utf8&quot;);
?&gt;
&lt;?php   
// สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า   
function page_navigator($before_p,$plus_p,$total,$total_p,$chk_page){   
	global $e_page;
	global $querystr;
	$urlfile=&quot;ajax_data.php&quot;; // ส่วนของไฟล์เรียกใช้งาน ด้วย ajax (ajax_dat.php)
	$per_page=10;
	$num_per_page=floor($chk_page/$per_page);
	$total_end_p=($num_per_page+1)*$per_page;
	$total_start_p=$total_end_p-$per_page;
	$pPrev=$chk_page-1;
	$pPrev=($pPrev&gt;=0)?$pPrev:0;
	$pNext=$chk_page+1;
	$pNext=($pNext&gt;=$total_p)?$total_p-1:$pNext;		
	$lt_page=$total_p-4;
	if($chk_page&gt;0){  
		echo &quot;&lt;a  href='$urlfile?s_page=$pPrev&amp;querystr=&quot;.$querystr.&quot;' class='naviPN'&gt;Prev&lt;/a&gt;&quot;;
	}
	for($i=$total_start_p;$i&lt;$total_end_p;$i++){  
		$nClass=($chk_page==$i)?&quot;class='selectPage'&quot;:&quot;&quot;;
		if($e_page*$i&lt;=$total){
		echo &quot;&lt;a href='$urlfile?s_page=$i&amp;querystr=&quot;.$querystr.&quot;' $nClass  &gt;&quot;.intval($i+1).&quot;&lt;/a&gt; &quot;;   
		}
	}		
	if($chk_page&lt;$total_p-1){
		echo &quot;&lt;a href='$urlfile?s_page=$pNext&amp;querystr=&quot;.$querystr.&quot;'  class='naviPN'&gt;Next&lt;/a&gt;&quot;;
	}
}   
?&gt;
&lt;?php
//////////////////////////////////////// เริ่มต้น ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax
?&gt;
&lt;ul&gt;
&lt;?php
$q=&quot;select * from province_th where 1&quot;;
$q.=&quot; ORDER BY province_id  &quot;;
$qr=mysql_query($q);
$total=mysql_num_rows($qr);
$e_page=10; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า   
if(!isset($_GET['s_page'])){   
	$_GET['s_page']=0;   
}else{   
	$chk_page=$_GET['s_page'];     
	$_GET['s_page']=$_GET['s_page']*$e_page;   
}   
$q.=&quot; LIMIT &quot;.$_GET['s_page'].&quot;,$e_page&quot;;
$qr=mysql_query($q);
if(mysql_num_rows($qr)&gt;=1){   
	$plus_p=($chk_page*$e_page)+mysql_num_rows($qr);   
}else{   
	$plus_p=($chk_page*$e_page);       
}   
$total_p=ceil($total/$e_page);   
$before_p=($chk_page*$e_page)+1;  
?&gt;
&lt;?php

while($rs=mysql_fetch_array($qr)){
?&gt;
&lt;li&gt;&lt;?=$rs['province_name']?&gt;&lt;/li&gt;
&lt;?php } ?&gt;
&lt;/ul&gt;


&lt;?php if($total&gt;0){ ?&gt;
&lt;div class=&quot;browse_page&quot;&gt;
 &lt;?php   
 // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า   
  page_navigator($before_p,$plus_p,$total,$total_p,$chk_page);    
  ?&gt; 
&lt;/div&gt;
&lt;?php } ?&gt;
&lt;?php
////////////////////////////////////////////  จบ ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax
?&gt;</pre>
<p>&nbsp;</p>]]></description><pubDate>Mon, 11 Oct 2010 13:23:49 +0700</pubDate></item><item><title>แนวทาง การสร้าง ระบบตรวจสอบ การล็อกอิน อย่างง่าย ด้วย ajax ใน jQuery และ php</title><link>http://www.ninenik.com/แนวทาง_การสร้าง_ระบบตรวจสอบ_การล็อกอิน_อย่างง่าย_ด้วย_ajax_ใน_jQuery_และ_php-348.html</link><description><![CDATA[<p>วิธีการต่อไปนี้ เป็นแนวทางเบื้องต้น สำหรับการทำระบบล็อกอิน ด้วย ajax อย่างง่าย<br />
<strong>ไฟล์สำหรับหน้าล็อกอิน สมมติเป็น index.php&nbsp; ประกอบด้วยฟอร์มสำหรับล็อกอิน </strong><br />
&nbsp;</p>
<pre class="php:controls" name="code">
&lt;form id=&quot;form_login_x&quot; name=&quot;form_login_x&quot; method=&quot;post&quot; action=&quot;&quot;&gt;
  User:
  &lt;input type=&quot;text&quot; name=&quot;textfield&quot; id=&quot;textfield&quot; /&gt;
  Pass:
  &lt;input type=&quot;text&quot; name=&quot;textfield2&quot; id=&quot;textfield2&quot; /&gt;
  &lt;input type=&quot;submit&quot; name=&quot;LoginBT&quot; id=&quot;LoginBT&quot; value=&quot;Login&quot; /&gt;
&lt;/form&gt;</pre>
<p>สิ่งที่จำเป็นต้องกำหนด <br />
id ของฟอร์ม ในที่นี้ &lt;form id=&quot;form_login_x&quot; <br />
id ของส่วนกรอกชื่อผู้ใช้ id=&quot;user_name&quot; <br />
id ของส่วนกรอกรหัสผ่าน&nbsp; id=&quot;user_pass&quot;<br />
กำหนดเพื่อไว้สำหรับอ้างอิงในการใช้งานกับ javascript<br />
<br />
<strong>ตัวอย่างโครงสร้าง ส่วนของฐานข้อมูลสำหรับทดสอบ</strong><br />
&nbsp;</p>
<pre class="sql:controls" name="code">
-- 
-- Table structure for table `tbl_user`
-- 

CREATE TABLE `tbl_user` (
  `user_id` int(11) NOT NULL auto_increment,
  `user_name` varchar(100) NOT NULL,
  `user_pass` varchar(100) NOT NULL,
  PRIMARY KEY  (`user_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

-- 
-- Dumping data for table `tbl_user`
-- 

INSERT INTO `tbl_user` VALUES (1, 'admin', '12345');
</pre>
<p><strong>ส่วนของ javascript สำหรับส่งข้อมูลไปตรวจสอบ</strong><br />
<br />
&nbsp;</p>
<pre class="javascript:controls" name="code">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	
	$(&quot;#form_login_x&quot;).submit(function(){ // เมื่อมีการ submit ฟอร์ม ล็อกอิน
		// ส่งข้อมูลไปตรวจสอบที่ไฟล์ check_login.php แบบ post ด้วย ajax
		$.post(&quot;check_login.php&quot;,$(&quot;#form_login_x&quot;).serialize(),function(data){
			if(data==1){ // ตรวจสอบผลลัพธ์
				// ถ้าล็อกอินผ่าน ให้ลิ้งค์ไปที่หน้า main_page.php
				window.location='main_page.php';
			}else{
				/// คำสั่งหรือแจ้งเตือนกรณีล็อกอินไม่ผ่าน
				$(&quot;#form_login_x&quot;)[0].reset();
			}
		});
		return false;
	});
	
});
&lt;/script&gt;</pre>
<p><strong>ส่วนของไฟล์สำหรับตรวจสอบการล็อกอิน สมมติใช้ check_login.php</strong><br />
&nbsp;</p>
<pre class="php:controls" name="code">
&lt;?php
session_start();
header(&quot;Content-type:text/html; charset=UTF-8&quot;);              
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);             
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);   
// ส่วนของการเชิ่อมต่อกับฐานข้อมูล   
mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;test&quot;) or die(&quot;Cannot connect the Server&quot;);   
mysql_select_db(&quot;test&quot;) or die(&quot;Cannot select database&quot;);   
mysql_query(&quot;set character set utf8&quot;);   

if($_POST['user_name']!=&quot;&quot; &amp;&amp; $_POST['user_pass']!=&quot;&quot;){
 	$q=&quot;SELECT * FROM tbl_user WHERE user_name='&quot;.$_POST['user_name'].&quot;' &quot;;
	$q.=&quot; AND user_pass='&quot;.$_POST['user_pass'].&quot;' LIMIT 1 &quot;;
	$qr=mysql_query($q);
	if(mysql_num_rows($qr)&gt;0){
		$rs=mysql_fetch_array($qr);
		// $_SESSION['ses_user']=$rs['user_id'];  // สร้างตัวแปร session ตามต้องการ
		echo &quot;1&quot;;  // เมื่อล็อกอินผ่าน
	}else{
		echo &quot;0&quot;;	
	}
}else{
	echo &quot;0&quot;;	
}
?&gt;</pre>
<p><strong>ส่วนสุดท้าย ในไฟล์ main_page.php ให้ตรวจสอบ session ที่สร้างจากไฟล์ check_login.php<br />
ถ้าไม่มีตัวแปร session ตามที่กำหนด ให้กลับมาที่หน้าล็อกอิน</strong><br />
&nbsp;</p>
<pre class="php:controls" name="code">
&lt;?php
session_start();
if(!isset($_SESSION['ses_user']) || $_SESSION['ses_user']==&quot;&quot;){
	header(&quot;Location:index.php&quot;);	
}
// ใส่ไว้ด้านบนของไฟล์สำหรับ เช็คว่าเป็น user หรือไม่
?&gt;</pre>
<p><u><strong>ตัวอย่างโค้ดไฟล์ทั้งหมด</strong></u><strong><br />
ไฟล์ index.php หน้าล็อกอิน<br />
</strong></p>
<pre class="php:controls" name="code">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
 &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;form id=&quot;form_login_x&quot; name=&quot;form_login_x&quot; method=&quot;post&quot; action=&quot;&quot;&gt;
  User:
  &lt;input type=&quot;text&quot; name=&quot;user_name&quot; id=&quot;user_name&quot; /&gt;
  Pass:
  &lt;input type=&quot;text&quot; name=&quot;user_pass&quot; id=&quot;user_pass&quot; /&gt;
  &lt;input type=&quot;submit&quot; name=&quot;LoginBT&quot; id=&quot;LoginBT&quot; value=&quot;Login&quot; /&gt;
&lt;/form&gt;


&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	
	$(&quot;#form_login_x&quot;).submit(function(){ // เมื่อมีการ submit ฟอร์ม ล็อกอิน
		// ส่งข้อมูลไปตรวจสอบที่ไฟล์ check_login.php แบบ post ด้วย ajax
		$.post(&quot;check_login.php&quot;,$(&quot;#form_login_x&quot;).serialize(),function(data){
			if(data==1){ // ตรวจสอบผลลัพธ์
				// ถ้าล็อกอินผ่าน ให้ลิ้งค์ไปที่หน้า main_page.php
				window.location='main_page.php';
			}else{
				/// คำสั่งหรือแจ้งเตือนกรณีล็อกอินไม่ผ่าน
				$(&quot;#form_login_x&quot;)[0].reset();
			}
		});
		return false;
	});
	
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><strong><font face="Courier New">ไฟล์ check_login.php สำหรับตรวจสอบการล็อกอิน</font></strong></p>
<pre class="php:controls" name="code">
&lt;?php
session_start();
header(&quot;Content-type:text/html; charset=UTF-8&quot;);              
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);             
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);   
// ส่วนของการเชิ่อมต่อกับฐานข้อมูล   
mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;test&quot;) or die(&quot;Cannot connect the Server&quot;);   
mysql_select_db(&quot;test&quot;) or die(&quot;Cannot select database&quot;);   
mysql_query(&quot;set character set utf8&quot;);   

if($_POST['user_name']!=&quot;&quot; &amp;&amp; $_POST['user_pass']!=&quot;&quot;){
 	$q=&quot;SELECT * FROM tbl_user WHERE user_name='&quot;.$_POST['user_name'].&quot;' &quot;;
	$q.=&quot; AND user_pass='&quot;.$_POST['user_pass'].&quot;' LIMIT 1 &quot;;
	$qr=mysql_query($q);
	if(mysql_num_rows($qr)&gt;0){
		$rs=mysql_fetch_array($qr);
		// $_SESSION['ses_user']=$rs['user_id'];  // สร้างตัวแปร session ตามต้องการ
		echo &quot;1&quot;;  // เมื่อล็อกอินผ่าน
	}else{
		echo &quot;0&quot;;	
	}
}else{
	echo &quot;0&quot;;	
}
?&gt;</pre>
<p><strong>ไฟล์หน้าหลักจะสามารถเข้าใช้งานได้ เมื่อล็อกอินผ่านเท่านั้น main_page.php หรือไฟล์อื่นๆ</strong><br />
&nbsp;</p>
<pre class="php:controls" name="code">
&lt;?php
session_start();
if(!isset($_SESSION['ses_user']) || $_SESSION['ses_user']==&quot;&quot;){
	header(&quot;Location:index.php&quot;);	
}
// ใส่ไว้ด้านบนของไฟล์สำหรับ เช็คว่าเป็น user หรือไม่
?&gt;</pre>
<p><strong>เนื้อหาเบื้องต้นเป็นแนวทาง ความต้องการที่เหนือกว่า ขึ้นอยู่กับการประยุกต์ใช้งานของแต่ละคน</strong></p>]]></description><pubDate>Wed, 29 Sep 2010 08:00:00 +0700</pubDate></item><item><title>เทคนิค ประยุกต์ใช้ ajax ใน jQuery ร่วมกับ iframe กับการอัพโหลดรูป</title><link>http://www.ninenik.com/เทคนิค_ประยุกต์ใช้_ajax_ใน_jQuery_ร่วมกับ_iframe_กับการอัพโหลดรูป-306.html</link><description><![CDATA[<p>โดยทั่วไป jQuery จะมี method ที่ชื่อ serialize() สำหรับส่งค่าข้อมูลจากฟอร์มแบบ ajax<br />
ตัวอย่าง<br />
&nbsp;</p>
<pre class="javascript:controls" name="code">
$.post(&quot;update.php&quot;,$(&quot;#form1&quot;).serialize());	
// จากโค้ดด้านบน เป็นการส่งค่า แบบ post โดยทำการส่งค่าต่างๆ ในฟอร์ม
// ที่มี id ฃื่อ form1 ไปยังไฟล์ update.php ในลักษณะ ajax</pre>
<p><font face="Courier New">แต่ด้วยข้อจำกัดในเรื่องของความปลอดภัย ทำให้ input type='file' หรือ element ประเภท อัพโหลดรูป หรืออัพโหลดไฟล์ ไม่สามารถส่งค่าไปด้วยคำสั่งข้างต้นได้&nbsp; </font></p>
<p><font face="Courier New">อย่างไรก็ตาม เราสามารถนำ iframe มาประยุกต์ใช้ ร่วมกับฟังก์ชัน ดังกล่าว ได้ ด้วยแนวทางดังนี้<br />
- เมื่อคลิกที่ปุ่มส่งข้อมูล ให้ทำการอัพโหลดไฟล์รูปภาพ ผ่านการ submit ฟอร์มทั่วไป แต่ให้ยิง target ไปที่ชื่อของ iframe ที่เราตั้งไว้<br />
- และถ้ามีการอัพโหลดรูปภาพ ให้ทำการส่งค่า หรือชื่อรูปภาพที่อัพโหลด กลับมาที่ parent หรือไฟล์หลัก ด้วย javascript ฟ้งก์ชัน<br />
- ใช้ javascript ฟังก์ชัน นั้นนำค่าชื่อรูปภาพที่ได้ ไปกับไว้ในไฟล์ hidden<br />
- จากนั้นเรียกใช้ method ของ jQuery ที่ชื่อ serialize() เพื่อส่งค่าต่างไปยังไฟล์ เพื่อบันทึกลงฐานข้อมูล</font></p>
<p>ตัวอย่างโค้ดไฟล์ ajax_jquery_input_file.php<br />
&nbsp;</p>
<pre class="xhtml:controls" name="code">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;ajax jquery input file&lt;/title&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;form action=&quot;update_data.php&quot; target=&quot;up_iframe&quot; method=&quot;post&quot; 
enctype=&quot;multipart/form-data&quot; name=&quot;form1&quot; id=&quot;form1&quot;&gt;
  &lt;input type=&quot;text&quot; name=&quot;data1&quot; id=&quot;data1&quot; /&gt;
  &lt;br /&gt;
  &lt;input type=&quot;file&quot; name=&quot;fileup&quot; id=&quot;fileup&quot; value=&quot;&quot; /&gt;
  &lt;input name=&quot;h_pic&quot; type=&quot;hidden&quot; id=&quot;h_pic&quot; value=&quot;&quot; /&gt;
&lt;br /&gt;
&lt;button type=&quot;button&quot; id=&quot;iSubmit&quot;&gt;Submit&lt;/button&gt;
&lt;/form&gt;
&lt;iframe name=&quot;up_iframe&quot; width=&quot;0&quot; height=&quot;0&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
&lt;hr /&gt;
&lt;div id=&quot;ShowData&quot;&gt;&lt;/div&gt;
&lt;script language=&quot;javascript&quot; src=&quot;js/jquery-1.4.1.min.js&quot;&gt;&lt;/script&gt;   
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	$(&quot;#iSubmit&quot;).click(function(){
		$(&quot;#form1&quot;)[0].submit();
	});
});
function setVal(dataVar){
	$(&quot;#h_pic&quot;).val(dataVar);
	$.post(&quot;update_data.php&quot;,$(&quot;#form1&quot;).serialize(),function(gData){
		$(&quot;#form1&quot;)[0].reset();		
		$(&quot;#ShowData&quot;).html(gData);	
	});		
}
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>ตัวอย่างโค้ดไฟล์ update_data.php<br />
&nbsp;</p>
<pre class="php:controls" name="code">
&lt;?php
header(&quot;Content-type:text/html; charset=UTF-8&quot;);              
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);             
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);   
function upimg($img,$imglocate){ // ฟังก์ชันสำหรับอัพโหลดรูปภาพอย่างง่าย
			global $file_up;
			if($img['name']!=''){
			$fileupload1=$img['tmp_name'];
			$g_img=explode(&quot;.&quot;,$img['name']);
			$file_up=time().&quot;.&quot;.$g_img[1];
				if($fileupload1){
					$array_last=explode(&quot;.&quot;,$file_up);
					$c=count($array_last)-1;
					$lastname=strtolower($array_last[$c]);
					if($lastname==&quot;gif&quot; or $lastname==&quot;jpg&quot; or $lastname==&quot;jpeg&quot; or $lastname==&quot;swf&quot; or $lastname==&quot;png&quot;){					
						@copy($fileupload1,$imglocate.$file_up);			
					}	
				}				
			}
		return $file_up;
}
?&gt;
&lt;?php
if(count($_POST)&gt;0){
	echo &quot;&lt;pre&gt;&quot;;
	print_r($_POST);
	echo &quot;&lt;pre&gt;&quot;;
	echo &quot;&lt;img src='upimg/&quot;.$_POST['h_pic'].&quot;' width='100' /&gt;&quot;;
	if(count($_FILES)&gt;0){
		$upFile=upimg($_FILES['fileup'],&quot;upimg/&quot;);
		 echo &quot;&lt;script&gt;parent.setVal('&quot;.$upFile.&quot;');&lt;/script&gt;&quot;;
	}		
	exit;
}
?&gt;</pre>
<p>ตัวอย่าง<br />
<a href="http://www.ninenik.com/demo/ajax_jquery_input_file.php">http://www.ninenik.com/demo/ajax_jquery_input_file.php</a></p>]]></description><pubDate>Sat, 31 Jul 2010 22:10:24 +0700</pubDate></item><item><title>แนวทาง การดึงข้อมูล แบบ real time ด้วย ajax ใน jQuery </title><link>http://www.ninenik.com/แนวทาง_การดึงข้อมูล_แบบ_real_time_ด้วย_ajax_ใน_jQuery_-284.html</link><description><![CDATA[<p><br />
เว็บที่มีการเปลี่ยนแปลงแบบ real time ที่ไม่ต้องโหลดหน้าจอใหม่ ปกติจะใช้ ajax การทำให้ข้อมูลมีการเปลี่ยนแปลง ตลอดเวลา จำป็นต้องใช้เวลาเป็นตัวกำหนด หรือคือการกำหนดให้ มีการดึงข้อมูลใหม่ มาแสดงด้วย ajax ตามเวลาที่กำหนด</p>
<p>ตัวอย่างต่อไปนี้เป็นแนวทาง การใช้งาน เป็นการดึงข้อมูลด้วย ajax โดยเอาวันที่ และเวลา มาแสดง โนที่ที่ต้องการแสดงทุก 3 วินาที</p>
<p><strong>1.สร้าง html tag กำหนด พื้นที่ หรือส่วนที่ต้องการแสดงผล </strong></p>
<pre class="xhtml:controls" name="code">
&lt;div id=&quot;showData&quot;&gt;&lt;/div&gt;</pre>
<p><strong>2.สร้างไฟล์ สำหรับหาวันที่ และเวลา มาแสดง ชื่อ gdata.php</strong></p>
<pre class="php:controls" name="code">
&lt;?php   
header(&quot;Content-type:text/html; charset=UTF-8&quot;);        
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);       
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);       
if($_GET['rev']==1){
	echo date(&quot;Y-m-d H:i:s&quot;);
	exit;
}
?&gt;</pre>
<p><strong>3.สร้าง ajax สคริปสำหรับเรียกใช้งาน</strong></p>
<pre class="javascript:controls" name="code">
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.4.1.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	setInterval(function(){ // เขียนฟังก์ชัน javascript ให้ทำงานทุก ๆ 30 วินาที
		// 1 วินาที่ เท่า 1000
		// คำสั่งที่ต้องการให้ทำงาน ทุก ๆ 3 วินาที
		var getData=$.ajax({ // ใช้ ajax ด้วย jQuery ดึงข้อมูลจากฐานข้อมูล
				url:&quot;gdata.php&quot;,
				data:&quot;rev=1&quot;,
				async:false,
				success:function(getData){
					$(&quot;div#showData&quot;).html(getData); // ส่วนที่ 3 นำข้อมูลมาแสดง
				}
		}).responseText;
	},3000);	
});
&lt;/script&gt;</pre>
<p>ตัวอย่าง</p>
<p><a href="http://www.ninenik.com/demo/demo_howto_ajax.php">การดึงข้อมูล แบบ real time ด้วย ajax </a></p>]]></description><pubDate>Wed, 12 May 2010 21:08:02 +0700</pubDate></item><item><title>แก้ปัญหา ปุ่ม back ปุ่ม forward กับการใช้งาน ajax โหลดหน้าเพจ ด้วย jQuery plugin อย่างง่าย</title><link>http://www.ninenik.com/แก้ปัญหา_ปุ่ม_back_ปุ่ม_forward_กับการใช้งาน_ajax_โหลดหน้าเพจ_ด้วย_jQuery_plugin_อย่างง่าย-282.html</link><description><![CDATA[<p>ในกรณีที่มีการ ใช้งาน ajax เพื่อทำการโหลดเนื้อหาบางส่วนของเว็บไซต์ กับการใช้งานปุ่ม back ปุ่ม forward ในบราวเซอร์ ที่ไม่สอดคล้องกัน เราสามารถใช้&nbsp; plugin ของ jQuery มาแก้ปัญหานี้ได้</p>
<p>ดูเนื้อหา และรายละเอียดทั้งหมด ด้วยตัวเองได้ที่ลิ้งค์</p>
<p><a href="http://www.asual.com/jquery/address/docs/#sample-usage">http://www.asual.com/jquery/address/docs/#sample-usage</a></p>
<p>ดาวน์โหลดไฟล์ต้นฉบับ พร้อมตัวอย่างได้ที่</p>
<p><a href="http://www.asual.com/blog/jquery/2010/05/05/jquery-address-12-ajax-crawling-url-building-and-more.html">http://www.asual.com/blog/jquery/2010/05/05/jquery-address-12-ajax-crawling-url-building-and-more.html</a></p>
<p>ต่อไปนี้เป็นตัวอย่างการนำมาใช่งานอย่างง่าย</p>
<p><strong>สร้างไฟล์ gdata.php สำหรับรับค่า</strong></p>
<pre class="php:controls" name="code">
&lt;?php
header(&quot;Content-type:text/html; charset=UTF-8&quot;);     
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);    
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);    
if($_GET['gDate']){
	echo date(&quot;Y-m-d&quot;);
	exit;
}
if($_GET['gTime']){
	echo date(&quot;H:i:s&quot;);	
	exit;
}
if($_GET['gText']){
	echo &quot;Text&quot;;	
	exit;
}
?&gt;</pre>
<p><strong><font face="Courier New">ไฟล์ทดสอบ HTML และ JavaScript ไฟล์</font></strong></p>
<pre class="xhtml:controls" name="code">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;ajax back button&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;

&lt;a href=&quot;#gDate&quot;&gt;Get Date&lt;/a&gt;
&lt;a href=&quot;#gTime&quot;&gt;Get Time&lt;/a&gt;
&lt;a href=&quot;#gText&quot;&gt;Get Text&lt;/a&gt;

&lt;div id=&quot;dataShow&quot;&gt;

&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.4.1.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.address-1.2.min.js?tracker=track&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	
	$.address.init(function(event) {
		
   }).change(function(event) {
	   var goAnchor=event.value;
	   var url=&quot;gdata.php&quot;;
		switch(goAnchor){
			case &quot;/gDate&quot;:
				$(&quot;div#dataShow&quot;).load(url+&quot;?gDate=1&quot;);
				break;
			case &quot;/gTime&quot;:
				$(&quot;div#dataShow&quot;).load(url+&quot;?gTime=1&quot;);
				break;
			case &quot;/gText&quot;:
				$(&quot;div#dataShow&quot;).load(url+&quot;?gText=1&quot;);
				break;	
		}
	});
	$('a').address(); 	
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><strong>ตัวอย่าง</strong></p>
<p><a href="http://www.ninenik.com/demo/ajax_back_button.php"><span style="color: #ff9900">แก้ปัญหา ปุ่ม back ปุ่ม forward กับการใช้งาน ajax โหลดหน้าเพจ ด้วย jQuery plugin </span></a></p>]]></description><pubDate>Mon, 10 May 2010 07:00:00 +0700</pubDate></item><item><title>สร้าง poll แบบสำรวจ ด้วย ajax ใน jQuery อย่างง่าย</title><link>http://www.ninenik.com/สร้าง_poll_แบบสำรวจ_ด้วย_ajax_ใน_jQuery_อย่างง่าย-280.html</link><description><![CDATA[<p><strong>ตัวอย่าง</strong></p>
<p><a href="http://www.ninenik.com/demo/ajax_poll_jquery_google.php">สร้าง poll แบบสำรวจ ด้วย ajax ใน jQuery อย่างง่าย</a></p>
<p><strong>Code ตัวอย่าง</strong></p>
<p>&nbsp;</p>
<pre class="php:controls" name="code">
&lt;?php
// สร้างฟังก์ชันเขียนไฟล์
function write($path, $content, $mode=&quot;w+&quot;){
    if (file_exists($path) &amp;&amp; !is_writeable($path)){ return false; }
    if ($fp = fopen($path, $mode)){
        fwrite($fp, $content);
        fclose($fp);
    }
    else { return false; }
    return true;
}
// การใช้งาน โมดเขียนไฟล์เริ่มต้น  w+ 
//write(&quot;poll1.txt&quot;,&quot;ทดสอบ&quot;,&quot;w+&quot;);
if($_GET['voteID']!=&quot;&quot;){
header(&quot;Content-type:text/html; charset=UTF-8&quot;);     
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);    
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);  		
	$gPoll=file(&quot;poll1.txt&quot;);
	$newData=&quot;&quot;;
	$chartTitle=&quot;&quot;;
	$numRowChart=$_GET['startKey']-1;
	foreach($gPoll as $key=&gt;$value){
		if($key==0){
			$chartTitle=trim($value);
		}
		if($_GET['voteID']+$_GET['startKey']==$key){
			$value=intval($value)+1;
			$newData.=$value.&quot;\r\n&quot;;
		}else{
			$newData.=$value;
		}
	}
	write(&quot;poll1.txt&quot;,$newData,&quot;w+&quot;);
?&gt;
{
	&quot;ChoiceTitle&quot;:[
&lt;?php  
$gPoll=file(&quot;poll1.txt&quot;);
foreach($gPoll as $key=&gt;$value){
	if($key&gt;0 &amp;&amp; $key&lt;$_GET['startKey']){
?&gt;
    	{&quot;choiceData&quot;:&quot;&lt;?=trim($value)?&gt; (&lt;?=trim($gPoll[$key+$_GET['startKey']])?&gt;)&quot;,&quot;score&quot;:&lt;?=trim($gPoll[$key+$_GET['startKey']])?&gt;},
&lt;?php
	}
}
?&gt;
    ],
    &quot;chartTitle&quot;:&quot;&lt;?=trim($chartTitle)?&gt;&quot;,
    &quot;numRowsChart&quot;:&lt;?=$numRowChart?&gt;
    
}
&lt;?php
	exit;
}
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;ajax poll jquery google&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
body{
	font-family:Tahoma, Geneva, sans-serif;
	font-size:12px;	
}
#pollDiv{
	display:block;
	width:200px;
	height:250px;
	background-color:#F4F4F4;	
}
&lt;/style&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;!--Div that will hold the pie chart--&gt; 
    &lt;div id=&quot;chart_div&quot;&gt;&lt;/div&gt; 


&lt;div id=&quot;pollDiv&quot;&gt;
&lt;?php
$gPoll=file(&quot;poll1.txt&quot;);
foreach($gPoll as $key=&gt;$value){
	if($key==0){
		echo &quot;&lt;strong&gt;&quot;.$value.&quot;&lt;/strong&gt;&lt;br&gt;&quot;;
	}else{
		if(trim($value)!=&quot;&quot;){
			echo '&lt;input type=&quot;radio&quot; name=&quot;choice&quot; id=&quot;radio&quot; value=&quot;'.$key.'&quot; /&gt;';
			echo $value.&quot;&lt;br&gt;&quot;;
		}else{
			echo '&lt;input type=&quot;button&quot; name=&quot;VotePoll&quot; id=&quot;VotePoll&quot; value=&quot;Vote&quot; /&gt;';
			break;	
		}
	}
}

?&gt;

&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.google.com/jsapi&quot;&gt;&lt;/script&gt; 
&lt;script type=&quot;text/javascript&quot;&gt; 
google.load(&quot;visualization&quot;, &quot;1&quot;, {packages:[&quot;columnchart&quot;]}); 
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.4.1.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	var checkCondi=0;
	var chooseKey=&quot;&quot;;
	var startKey=$(&quot;input[name=choice]&quot;).size()+1;
	$(&quot;#VotePoll&quot;).click(function(){
		$(&quot;input[name=choice]&quot;).each(function(key){
			var condi=$(&quot;input[name=choice]&quot;).eq(key).attr(&quot;checked&quot;);
			if(condi==true){
				checkCondi=1;
				chooseKey=key+1;
			}
		});
		if(checkCondi==1){
			var loading_obj='&lt;p id=&quot;i_loading&quot; align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.ninenik.com/ajax.gif&quot; /&gt;&lt;/p&gt;'; 
			 $(&quot;div#pollDiv&quot;).html(loading_obj); 
			var resultData=$.ajax({
				url:&quot;ajax_poll_jquery_google.php&quot;,
				data:&quot;voteID=&quot;+chooseKey+&quot;&amp;startKey=&quot;+startKey,
				async:false,
				success:function(resultData){
					var myObject = eval('(' + resultData + ')');
					$(&quot;div#pollDiv&quot;).html(&quot;&quot;);
					var data = new google.visualization.DataTable(); 
					data.addColumn('string', 'Choice Poll'); 
					data.addColumn('number', 'Score Point'); 
					data.addRows(myObject.numRowsChart);

					for(i=0;i&lt;myObject.numRowsChart;i++){
						data.setCell(i, 0, myObject.ChoiceTitle[i].choiceData);
						data.setCell(i, 1, myObject.ChoiceTitle[i].score);
					}					
					var chart = new google.visualization.PieChart(document.getElementById('pollDiv')); 
					chart.draw(data, {
						width: 250, 
						height: 300, 
						is3D: true,
						legend:'bottom',
						legendFontSize:13, 
						titleFontSize:12,
						title:myObject.chartTitle
					}); 
				}
			}).responseText;
		}
	});
});
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p><strong>ไฟล์ text สำหรับสร้างแบบสำรวจ</strong></p>
<p><a href="http://www.ninenik.com/demo/poll1.txt">poll1.txt</a></p>]]></description><pubDate>Thu, 06 May 2010 23:28:26 +0700</pubDate></item><item><title>ประยุกต์ ใช้งาน php และ ajax ใน jQuery แสดงผลลัพธ์ คล้าย twitter</title><link>http://www.ninenik.com/ประยุกต์_ใช้งาน_php_และ_ajax_ใน_jQuery_แสดงผลลัพธ์_คล้าย_twitter-279.html</link><description><![CDATA[<p><strong>ตัวอย่าง</strong></p>
<p><a href="http://www.ninenik.com/demo/jquery_more_twitter.php">ประยุกต์ ใช้งาน php และ ajax ใน jQuery แสดงผลลัพธ์ คล้าย twitter</a></p>
<p><strong>Code ตัวอย่าง</strong></p>
<pre class="php:controls" name="code">
&lt;?php
session_start();
$link=mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;test&quot;) or die(&quot;error&quot;.mysql_error());   
mysql_select_db(&quot;test_db&quot;,$link);   
mysql_query(&quot;set character set utf8&quot;);	

$showPerPage=23;
?&gt;
&lt;?php
if($_GET['gopage']){
$q=$_SESSION['ses_more_show'];
$q.=&quot;   LIMIT &quot;.$_GET['gopage'].&quot;,$showPerPage &quot;;
$qr=mysql_query($q);
$total_data=mysql_num_rows($qr);
if($total_data&gt;0){
echo '&lt;hr style=&quot;height:1px;background-color:#F4F4F4;&quot; /&gt;';
while($rs=mysql_fetch_array($qr)){
echo &quot;&lt;span&gt;&quot;.$rs['name_province'].&quot;&lt;/span&gt;&lt;br /&gt;&quot;;
}
}else{
echo &quot;-1&quot;;
}
	exit;
}
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;ใช้งาน php และ ajax ใน jQuery แสดงผลลัพธ์ คล้าย twitter&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
div#resultDiv{
	margin:auto;
	width:500px;
	padding:5px;	
}
#showMore{
	width:450px;
	text-align:center;
	height:30px;
	cursor:pointer;
	font-size:18px;
	font-weight:bold;
	color:#06F;
	border:1px solid #EAEAEA;
	background-color:#F8F8F8;
}
#showMore:hover{
	color:#06F;
	border:1px solid #EAEAEA;
	background-color:#E3ECFD;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;

&lt;div id=&quot;resultDiv&quot;&gt;
&lt;?php
if(!isset($posi_first)){
	$posi_first=0;	
}
$q=&quot;SELECT * FROM  province  ORDER BY name_province   &quot;;
$_SESSION['ses_more_show']=$q;
$qr=mysql_query($q);
$total_data=mysql_num_rows($qr);
$q.=&quot; LIMIT $posi_first,$showPerPage &quot;;
$qr=mysql_query($q);
while($rs=mysql_fetch_array($qr)){
?&gt;
&lt;span&gt;&lt;?=$rs['name_province']?&gt;&lt;/span&gt;&lt;br /&gt;
&lt;?php } ?&gt;


&lt;/div&gt;

&lt;input name=&quot;gopage&quot; type=&quot;hidden&quot; id=&quot;gopage&quot; value=&quot;&lt;?=$posi_first+$showPerPage?&gt;&quot; /&gt;
&lt;input name=&quot;h_total_data&quot; type=&quot;hidden&quot; id=&quot;h_total_data&quot; value=&quot;&lt;?=$total_data?&gt;&quot; /&gt;
&lt;?php if($total_data&gt;$showPerPage){ ?&gt;
&lt;div style=&quot;margin:auto;text-align:center;&quot;&gt;
&lt;input type=&quot;button&quot; name=&quot;showMore&quot; id=&quot;showMore&quot; value=&quot;more&quot; /&gt;
&lt;/div&gt;
&lt;?php } ?&gt;

&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.4.1.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	var showPerPage=23;
	$(&quot;#showMore&quot;).click(function(){	
		$(this).hide();
		var loading_obj='&lt;p id=&quot;i_loading&quot; align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.ninenik.com/ajax.gif&quot; /&gt;&lt;/p&gt;';
		$(&quot;div#resultDiv&quot;).append(loading_obj);
		var i_gopage=parseInt($(&quot;#gopage&quot;).val());
		var i_setpage=parseInt($(&quot;#gopage&quot;).val())+showPerPage;
		$(&quot;#gopage&quot;).val(i_setpage);
		var moreHTML=$.ajax({
			url:&quot;jquery_more_twitter.php&quot;,
			data:&quot;gopage=&quot;+i_gopage,
			async:false
		}).responseText;		
		setTimeout(function(){
			$(&quot;p#i_loading&quot;).remove();
			if(moreHTML!=&quot;-1&quot;){
			$(&quot;div#resultDiv&quot;).append(moreHTML);
				if(i_setpage&lt;$(&quot;#h_total_data&quot;).val()){
					$(&quot;#showMore&quot;).show();
				}
			}
		},1500);				
	});	
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>&nbsp;</p>]]></description><pubDate>Tue, 04 May 2010 07:08:08 +0700</pubDate></item><item><title>ใช้งาน ajax ใน jQuery ดึงข้อมูลจากฐานข้อมูลมาแสดง ใน tooltip</title><link>http://www.ninenik.com/ใช้งาน_ajax_ใน_jQuery_ดึงข้อมูลจากฐานข้อมูลมาแสดง_ใน_tooltip-278.html</link><description><![CDATA[<p>อาศัยการประยุกต์ จากหัวข้อ</p>
<p><a href="http://www.ninenik.com/ประยุกต์_tooltip_มากกว่า_1_ตัวใน_ฟอร์ม_ด้วย_jQuery-277.html">http://www.ninenik.com/ประยุกต์_tooltip_มากกว่า_1_ตัวใน_ฟอร์ม_ด้วย_jQuery-277.html</a></p>
<p>โดยส่วนที่เพิ่มเข้ามา คือการใช้งาน ajax ด้วย jQuery เพิ่มดึงข้อมูลมาแสดง</p>
<p>ตัวอย่างต่อไปนี้คือแนวทาง ภายใต้เงื่อนไขความต้องการ คือ</p>
<p>ต้องการแสดง ข้อมูลสมาชิก เมื่อ เอาเมาส์วางไว้เหนือรูปภาพของสมาชิกนั้นๆ <br />
โดยกำหนด รูปภาพดังนี้</p>
<pre class="xhtml:controls" name="code">
&lt;img src=&quot;img/avatar/user.gif&quot; width=&quot;50&quot; height=&quot;50&quot; title=&quot;10&quot; class=&quot;userInfo&quot; /&gt;</pre>
<p>คือ กำหนด ให้มี attribute ชื่อ title เพื่อเก็บ id ของสมาชิก และ class เพื่อใช้สำหรับการแสดง<br />
tooltip</p>
<p>จากนั้นสร้างไฟล์สำหรับแสดงข้อมูลของสมาชิก ที่ดึงข้อมูลจากฐานข้อมูล โดยกำหนดรูปแบบ<br />
การแสดงผล ตามต้องการ ในที่นี้ใช้ชื่อ getUserInfo.php โดยจะทำการรับค่า id ของสมาชิกมา<br />
แล้วไปตรวจสอบในฐานข้อมูล แล้วนำชื่อของสมาชิกนั้นๆ มาแสดง <br />
ซึ่งจะทำงานในรูปแบบ ajax ด้วย jQuery ดังนี้</p>
<p><strong>ตัวอย่าง ไฟล์ getUserInfo.php</strong></p>
<pre class="php:controls" name="code">
&lt;?php
session_start();
header(&quot;Content-type:text/html; charset=UTF-8&quot;);     
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);    
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);    
// ส่วนของการติดต่อฐานข้อมูล
$link=mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;test&quot;);  
mysql_select_db(&quot;test&quot;);  

if($_GET['member_id']!=&quot;&quot;){
	$q=&quot;SELECT member_name  FROM member WHERE member_id='&quot;.$_GET['member_id'].&quot;' &quot;;
	$qr=mysql_query($q);
	if(@mysql_num_rows($qr)&gt;0){
		$rs=mysql_fetch_array($qr);
		// กำหนดรูปแบบการแสดงผลตามต้องการ ในที่นี้แสดงแค่ชื่อ
		echo $rs['member_name'];
	}
}
?&gt;  </pre>
<p><strong>HTML Code ตัวอย่าง</strong></p>
<pre class="xhtml:controls" name="code">
&lt;img src=&quot;img/avatar/user.gif&quot; width=&quot;50&quot; height=&quot;50&quot; title=&quot;10&quot; class=&quot;userInfo&quot; /&gt;

&lt;!-- ส่วนสำหรับนำข้อมูลมาแสดง --&gt;
&lt;span class='iTooltip' id=&quot;showUserInfo&quot;&gt;&lt;/span&gt;</pre>
<p><strong>CSS สำหรับกำหนดรูปแบบการแสดงผล</strong></p>
<pre class="css:controls" name="code">
&lt;style type=&quot;text/css&quot;&gt; 
/* css สำหรับกำหนดรูปแบบของกล่องข้อความ Tooltip */
.iTooltip{
	position:absolute;
	border:1px solid #FFCC66;
	background-color:#FFFFCC;
	color:#000000;
	display:none;
	padding:5px;
/*	width:200px;*/
	font-size:12px;
}
&lt;/style&gt;</pre>
<p><strong>Javascript Code </strong></p>
<pre class="javascript:controls" name="code">
&lt;script language=&quot;javascript&quot; src=&quot;js/jquery-1.4.1.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	$(&quot;img.userInfo&quot;).hover(function(event){ // img.userInfo คือ แท็ก img ที่มี class เท่ากับ userInfo
		var userID=$(this).attr(&quot;title&quot;); // id ของสมาชิกที่ตรงในฐานข้อมูล
		var dataUser=$.ajax({
			url:&quot;getUserInfo.php&quot;,
			data:&quot;member_id=&quot;+userID,
			success:function(dataUser){
				callTooltip(&quot;#showUserInfo&quot;,event,dataUser); 
			}
		}).responseText;		
	},function(){
		$(&quot;#showUserInfo&quot;).hide();
	});

});
function callTooltip(obj,event,strText){ // ฟังก์ชั่นแสดงกล่องข้อความ Tooltip
		var locateX=event.pageX;   
        var locateY=event.pageY; 
		locateX+=10;
		locateY+=10;
		$(obj).show().css({
			left:locateX,
			top:locateY
		}).html(strText);				
}
&lt;/script&gt;</pre>
<p>&nbsp;</p>]]></description><pubDate>Sun, 02 May 2010 15:22:11 +0700</pubDate></item><item><title>ดึงไฟล์ xml (rss) ไฟล์แบบ cross domain มาแสดงด้วย ajax ใน jQuery อย่างง่าย</title><link>http://www.ninenik.com/ดึงไฟล์_xml_(rss)_ไฟล์แบบ_cross_domain_มาแสดงด้วย_ajax_ใน_jQuery_อย่างง่าย-250.html</link><description><![CDATA[<p>&nbsp;การดึง ข้อมูลจาก xml ไฟล์มาใช้ในเว็บ จะใช้ข้อมูลประมาณ 3 - 4 ข้อมูล ได้แก่&nbsp;</p>
<div>1.หัวข้อ title&nbsp;</div>
<div>2.ลิ้งค์ที่อยู่ url&nbsp;</div>
<div>3.รูปภาพประกอบ image</div>
<div>4.วันที่ date</div>
<div>&nbsp;</div>
<div>
<div>แต่ในที่นี่จะแสดงตัวอย่างการดึงข้อมูล 2 ข้อมูลมาแสดง คือ หัวข้อ title และ ลิ้งค์ที่อยู่ url</div>
<div>โดยสามารถทำตามขั้นตอน ได้ดังต่อไปนี้</div>
<div>1.สรัางไฟล์ php เรียก ข้อมูล xml มาแสดง ชื่อ gXML.php</div>
<pre name="code" class="php:controls">
&lt;?php
if(isset($_GET['url'])){
header(&quot;Content-type:text/xml; charset=UTF-8&quot;);   
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);      
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);  
echo $gXML=file_get_contents($_GET['url']);
exit;
}
?&gt;</pre>
<div>2.HTML code ในไฟล์สำหรับ แสดงข้อมูล</div>
<pre name="code" class="html:controls">
&lt;div id=&quot;showRSS&quot;&gt;
&lt;ul&gt;

&lt;/ul&gt;
&lt;/div&gt;
</pre>
<div>3.Javascript Code สำหรับดึงข้อมูล</div>
<pre name="code" class="javascript:controls">
&lt;script src=&quot;http://www.google.com/jsapi&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
google.load(&quot;jquery&quot;, &quot;1.3.2&quot;);
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
	var gXML=$.ajax({
		url: &quot;gXML.php?url=http://www.ninenik.com/rss2.xml&quot;,
		async: false, 
		success:function(gXML){ 	
			var NumItem=$(gXML).find(&quot;item&quot;).length; 
			var titleRSS=null;
			var linkRSS=null;
			for(var i=0;i&lt;NumItem;i++){
				titleRSS=$(gXML).find(&quot;item title&quot;).eq(i).text();
				linkRSS=$(gXML).find(&quot;item link&quot;).eq(i).text();
				$(&quot;div#showRSS ul&quot;).append(&quot;&lt;li&gt;&lt;a href='&quot;+linkRSS+&quot;' target='_blank'&gt;&quot;+titleRSS+&quot;&lt;/a&gt;&lt;/li&gt;&quot;);
			}
		}
	}).responseText;
});
</pre>
<div><strong>คำอธิบาย</strong></div>
<div>
<div>บรรทัดที่ 8 กำหนด url ของ xml ไฟล์ที่ต้องการนำมาแสดง</div>
<div>บรรทัดที่ 11 กำหนดตัวแปรเก็บจำนวนรายการทั้งหมด สามารถกำหนดเป็นตัวเลขที่ต้องการแสดงได้</div>
<div>บรรทัดที่ 12 กำหนดตัวแปรเก็บหัวเรื่อง</div>
<div>บรรทัดที่ 13 กำหนดตัวแปรเก็บ url</div>
<div>บรรทัดที่ 14 วนลูปแสดงรายการใน xml</div>
<div>บรรทัดที่ 15 ดึงข้อมูลหัวข้อจาก xml ไฟล์เก็บในตัวแปร titleRSS</div>
<div>บรรทัดที่ 16 ดึงข้อมูล url สำหรับลิ้งค์ มาเก็บในตัวแปร linkRSS</div>
<div>บรรทัดที่ 17 แสดงข้อมูลใน div</div>
<div>&nbsp;</div>
<div>ทั้งหมดนี้ สามารถนำไปประยุกต์ใช้ กับ xml ไฟล์ที่ไม่ใช่ rss &nbsp;ได้</div>
<div>&nbsp;</div>
</div>
<div>หากต้องการปรับแต่งการแสดงผล สามารถกำหนด โดยแทรก css code ตัวไปนี้</div>
<div>&nbsp;</div>
<pre name="code" class="css:controls">
&lt;style type=&quot;text/css&quot;&gt;
/* style สำหรับ list รายการ */
div#showRSS ul,div#showRSS ul li{
	
}
/* style สำหรับ list รายการ */
div#showRSS ul li{

}
/* style สำหรับ link */
div#showRSS ul li a{
	font-family:Arial, &quot;times New Roman&quot;, tahoma;
	font-size:12px;
	color:#000000;	
	text-decoration:none;
}
/* style สำหรับ link เมื่อเมาส์อยู่เหนือ */
div#showRSS ul li a:hover{
	font-family:Arial, &quot;times New Roman&quot;, tahoma;
	font-size:12px;	
	font-weight:bold;
	color:#FF3300;
	background-color:#F5F5F5;
	text-decoration:none;
}
&lt;/style&gt;
</pre>
<div>&nbsp;ตัวอย่าง คลิก&nbsp;<a href="http://www.ninenik.com/demo/jquery_xml.php">http://www.ninenik.com/demo/jquery_xml.php</a></div>
<div>&nbsp;</div>
</div>]]></description><pubDate>Mon, 04 Jan 2010 20:22:41 +0700</pubDate></item><item><title>สร้างระบบ สมาชิกออนไลน์ member online ด้วย  php และ ajax ใน jQuery อย่างง่าย</title><link>http://www.ninenik.com/สร้างระบบ_สมาชิกออนไลน์_member_online_ด้วย__php_และ_ajax_ใน_jQuery_อย่างง่าย-235.html</link><description><![CDATA[<p>1.สร้างตารางในฐานข้อมูล  </p>
<pre name="code" class="sql:controls">
CREATE TABLE `memberonline` (
  `onlineID` int(11) NOT NULL auto_increment,
  `onlineMemberID` int(11) NOT NULL,
  `onlineMemberName` varchar(100) NOT NULL,
  `onlineTimestamp` int(11) NOT NULL,
  PRIMARY KEY  (`onlineID`)
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
</pre>
2.สร้างไฟล์สำหรับแสดงจำนวนสมาชิกออนไลน์ และ รายชื่อสมาชิก เป็น gmemberonline.php
<pre name="code" class="php:controls">
&lt;?php
session_start();
header("Content-type:text/html; charset=UTF-8");     
header("Cache-Control: no-store, no-cache, must-revalidate");    
header("Cache-Control: post-check=0, pre-check=0", false);    
// ส่วนของการติดต่อฐานข้อมูล
$link=mysql_connect("localhost","root","test");  
mysql_select_db("test");  


$memberNameOnline=""; // กำหนดตัวแปรสำหรับเก็บชื่อสมาชิกที่ออนไลน์
$q="SELECT onlineMemberID,onlineMemberName  FROM memberonline WHERE 1";
$qr=mysql_query($q);
$numMemberOnline=mysql_num_rows($qr); // เก็บจำนวนสมาชิกที่ออนไลน์
while($rs=mysql_fetch_array($qr)){
	$memberNameOnline.=$rs['onlineMemberName']."&lt;br&gt;"; // เก็บชื่อสมาชิกที่ออนไลน์
}
echo "$numMemberOnline Member Online&lt;br&gt;"; // แสดงจำนวนสมาชิกที่ออนไลน์
echo	  $memberNameOnline; // แสดงชื่อสมาชิก


/*
แก้ไขตัวแปร session  ในที่นี้ใช้ 
$_SESSION['ses_memberID'] เก็บ  id ของสมาชิก
$_SESSION['ses_memberName']  เก็บ ชื่อของสมาชิก
ให้แก้ไขตัวแปรตาม ทั้งสองข้างต้นตามต้องการ
*/
if(isset($_SESSION['ses_memberID']) && $_SESSION['ses_memberID']!=""){
	$q="SELECT * FROM memberonline WHERE onlineMemberID='".$_SESSION['ses_memberID']."' ";
	if(mysql_num_rows(mysql_query($q))&lt;=0){
	$q="INSERT INTO  `memberonline` (
	`onlineID` ,
	`onlineMemberID` ,
	`onlineMemberName` ,
	`onlineTimestamp`
	)
	VALUES (
	NULL ,  '".$_SESSION['ses_memberID']."',  '".$_SESSION['ses_memberName']."', '".time()."'
	);";
	mysql_query($q);
	}else{
		mysql_query("DELETE FROM memberonline WHERE unix_timestamp( ) - onlineTimestamp &gt; 60 ");
	}
}
?&gt;  
</pre>
<p>3. แสดงข้อมูลด้วย ajax ใน jQuery ไฟล์ memberonline.php </p>

<p>CSS code</p>
<pre name="code" class="css:controls">
&lt;style type="text/css"&gt;
div#memberOnlineShow{
	width:120px;
	border:1px solid #99FFCC;
	color:#3366CC;
	text-align:center;
}
&lt;/style&gt;
</pre>
<p>HTML code</p>
<pre name="code" class="html:controls">
&lt;div id="memberOnlineShow"&gt;

&lt;/div&gt;
</pre>
<p>Javascript Code</p>
<pre name="code" class="javascript:controls">
&lt;script src="http://www.google.com/jsapi" type="text/javascript"&gt;&lt;/script&gt;  
&lt;script type="text/javascript"&gt;  
google.load("jquery", "1.3.2");  
&lt;/script&gt;  
&lt;script type="text/javascript"&gt;  
$(function(){  
	callMemberOnline();
});  
var intV=setInterval("callMemberOnline()",5000);
function callMemberOnline(){
		var html=$.ajax({
			url:"gmemberonline.php",
			data:"memberID=&memberName=",
			async: false,
			success:function(html){
				$("div#memberOnlineShow").html(html);
			},
			error:function(){
					clearInterval(intV);
			}
		}).responseText;		
}
&lt;/script&gt; 
</pre>

<p>รวมไฟล์ memberonline.php (สำหรับทดสอบ)</p>
<pre name="code" class="html:controls">
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;title&gt;&lt;/title&gt;

&lt;/head&gt;

&lt;body&gt;
&lt;style type="text/css"&gt;
div#memberOnlineShow{
	width:120px;
	border:1px solid #99FFCC;
	color:#3366CC;
	text-align:center;
}
&lt;/style&gt;
&lt;div id="memberOnlineShow"&gt;

&lt;/div&gt;
&lt;script src="http://www.google.com/jsapi" type="text/javascript"&gt;&lt;/script&gt;  
&lt;script type="text/javascript"&gt;  
google.load("jquery", "1.3.2");  
&lt;/script&gt;  
&lt;script type="text/javascript"&gt;  
$(function(){  
	callMemberOnline();
});  
var intV=setInterval("callMemberOnline()",5000);
function callMemberOnline(){
		var html=$.ajax({
			url:"gmemberonline.php",
			data:"memberID=&memberName=",
			async: false,
			success:function(html){
				$("div#memberOnlineShow").html(html);
			},
			error:function(){
					clearInterval(intV);
			}
		}).responseText;		
}
&lt;/script&gt; 


&lt;/body&gt;
&lt;/html&gt;
</pre>]]></description><pubDate>Wed, 25 Nov 2009 12:54:36 +0700</pubDate></item><item><title>รู้จักกับ Ajax Events ใน jQuery</title><link>http://www.ninenik.com/รู้จักกับ_Ajax_Events_ใน_jQuery-230.html</link><description><![CDATA[events ที่เกิดจากการเรียกใช้งาน ajax ใน jQuery แบ่งออกได้เป็น 2 ประเภท<br>
1. Local Events ใช้กับ ajax object ของ jQuery
<p>ตัวอย่างการใช้งาน Local Events</p>
<pre name="code" class="javascript:controls">
 $.ajax({
   beforeSend: function(){
     // สำหรับควบคุม beforeSend event
   },
   complete: function(){
     // สำหรับควบคุม complete event
   }
   // ......
 });
</pre>

2. Global Events ใช้กับ DOM (Document Object Model) element ทั่วไปเช่น div,img,input เป็นต้น
<p>ตัวอย่างการใช้งาน Global Events<p>
<pre name="code" class="javascript:controls">
$("div#loading").bind("ajaxSend", function(){
   $(this).show();
 }).bind("ajaxComplete", function(){
   $(this).hide();
 });
</pre>


การปิดการใช้งาน Global Events สามารถกำหนด option ใน ajax object ของ jQuery 
<p>ตัวอย่างการปิดการใช่้งาน Global Events</p>
<pre name="code" class="javascript:controls">
$.ajax({
   url: "test.html",
   global: false,
   // ...
});
</pre>


รายการ Events ทั้งหมดที่เกิดจากการใช้งาน ajax object ใน jQuery<br>

1.ajaxStart (Global Event)<br>
เป็น event ที่เกิดเมื่อเริ่มมีการร้องขอแบบ Ajax และไม่มีคำร้องขอแบบ Ajax อื่นที่กำลังทำงานอยู่
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
// เมื่อมีการส่งคำร้องขอแบบ ajax ให้ div ที่มี id เท่ากับ loading แสดง
 $("div#loading").ajaxStart(function(){
   $(this).show();
 });
</pre>


2.beforeSend (Local Event)<br>
เป็น event ที่เรียกก่อนที่คำร้องขอแบบ ajax จะเริ่ม ใช้สำหรับกำหนดค่าเพิ่มเติมเกี่ยวกับ ajax เช่น header,content-type เป็นต้น
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
 $.ajax({
   beforeSend: function(){
     // สำหรับควบคุม beforeSend event
   }
 });
</pre>

3.ajaxSend (Global Event)<br>
เป็น event ที่เรียกก่อนที่คำร้องขอแบบ ajax จะทำงาน
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
// แสดงข้อความ ก่อนคำร้องขอแบบ ajax จะทำงาน
 $("div#msg").ajaxSend(function(){
   $(this).append("&lt;li&gt;Starting request &lt;/li&gt;");
 });
</pre>


4.success (Local Event)<br>
เป็น event ที่เกิดขึ้นต่อเมื่อมีการส่งคำร้องขอแบบ ajax สำเร็จ ไม่มีข้อผิดพลาดจาก เซิร์ฟเวอร์ ไม่มีข้อผิดพลาดกับข้อมูลที่ส่ง
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
 $.ajax({
   success: function(){
     // สำหรับควบคุม success event
   }
 });
</pre>


5.ajaxSuccess (Global Event)<br>
เป็น event ที่เกิดขึ้นต่อเมื่อมีการส่งคำร้องขอแบบ ajax สำเร็จ คล้ายกับ local success event 
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
// แสดงข้อความเมื่อทำการส่งคำร้องขอแบบ ajax สำเร็จ
 $("div#msg").ajaxSuccess(function(){
   $(this).append("&lt;li&gt;Successful Request!&lt;/li&gt;");
 });
</pre>


6.error (Local Event)<br>
เป็น event ที่เกิดขึ้นการส่งคำร้องขอแบบ ajax ล้มเหลวหรือเกิดข้อผิดพลาด
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
 $.ajax({
   error: function(){
     // สำหรับควบคุม error event
   }
 });
</pre>


7.ajaxError (Global Event)<br>
เป็น event ที่เกิดขึ้นการส่งคำร้องขอแบบ ajax ล้มเหลวหรือเกิดข้อผิดพลาด คล้ายกับ local error event
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
 $("div#msg").ajaxError(function(){
   $(this).append("&lt;li&gt;Error requesting page &lt;/li&gt;");
 });
</pre>


8.complete (Local Event)<br>
เป็น event ที่เกิดขึ้นเมื่อมีการส่งคำร้องขอแบบ ajax ไป โดยไม่จำเป็นที่คำร้องขอแบบ ajax นั้นจะสำเร็จหรือไม่
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
 $.ajax({
   complete: function(){
     // สำหรับควบคุม complete event
   }
 });
</pre>

9.ajaxComplete (Global Event)<br>
เป็น event ที่เกิดขึ้นเมื่อมีการส่งคำร้องขอแบบ ajax ไป โดยไม่จำเป็นที่คำร้องขอแบบ ajax นั้นจะสำเร็จหรือไม่ และ event นี้จะเกิดขึ้นเสมอเมื่อคำร้องขอแบบ ajax จบลง คล้ายกับ local complete event
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
$("div#msg").ajaxComplete(function(){
   $(this).append("&lt;li&gt;Request Complete.&lt;/li&gt;");
 });
</pre>

10.ajaxStop (Global Event)<br>
เป็น event ที่เกิดเมื่อ คำร้องขอแบบ ajax จบลง หรือไม่มีคำร้องขอแบบ ajax ใดๆ ที่กำลังดำเนินการอยู่
<p>ตัวอย่างการใช้งาน</p>
<pre name="code" class="javascript:controls">
// ซ่อน loading div เมื่อคำร้องขอแบบ ajax จบลง
 $("div#loading").ajaxStop(function(){
   $(this).hide();
 });
</pre>



<p>
ถ้าสามารถทำความเข้าใจ event ต่างๆ ได้ดีแล้วจะทำให้สามารถใช้งาน ajax ใน jQuery ได้อย่างมีประสิทธิภาพ<br>
อ่านเพิ่มเดิมภาษาอังกฤษ <a href="http://docs.jquery.com/Ajax_Events" target="_blank">http://docs.jquery.com/Ajax_Events</a>
</p>]]></description><pubDate>Thu, 12 Nov 2009 10:28:42 +0700</pubDate></item><item><title>สร้างฟังก์ชัน autocomplete ให้ใช้งานแบบง่าย ด้วย ajax</title><link>http://www.ninenik.com/สร้างฟังก์ชัน_autocomplete_ให้ใช้งานแบบง่าย_ด้วย_ajax-209.html</link><description><![CDATA[<p>ตัวอย่าง</p>
<script type="text/javascript" src="demo/autocomplete.js"></script>
<link rel="stylesheet" type="text/css" href="demo/autocomplete.css" />
<form id="form1" name="form1" method="post" action="">
  <input name="article_topic_show" type="text" id="article_topic_show" size="60" />
  <input name="h_article_topic_show" type="hidden" id="h_article_topic_show" value="" />
</form>
<script type="text/javascript">   
function make_autocom(autoObj,showObj){   
    var mkAutoObj=autoObj;    
    var mkSerValObj=showObj;    
    new Autocomplete(mkAutoObj, function() {   
        this.setValue = function(id) {         
            document.getElementById(mkSerValObj).value = id;   
        }   
        if ( this.isModified )   
            this.setValue("");   
        if ( this.value.length < 1 && this.isNotClick )    
            return ;       
        return "demo/gdata.php?q=" + encodeURIComponent(this.value);   
    });    
}      
    
// การใช้งาน   
// make_autocom(" id ของ input ตัวที่ต้องการกำหนด "," id ของ input ตัวที่ต้องการรับค่า");   
make_autocom("article_topic_show","h_article_topic_show");   
</script> 
<p>ไฟล์ที่จำเป็นต้องใช้
<br><a href="/demo/autocomplete.js" rel="nofollow" target="_blank">1.autocomplete.js</a>
<br><a href="/demo/autocomplete.css" rel="nofollow" target="_blank">2.autocomplete.css</a>
<br><a href="/demo/autocomplete.gif" rel="nofollow" target="_blank">3.autocomplete.gif</a>
<br>ทำการดาวโหลดโดยคลิกขวาที่ลิ้งไฟล์ด้านบน แล้วทำการบันทึก</p>
<p>HTML Code ตัวอย่าง</p>
<pre class="html:controls" name="code">&lt;html>
&lt;head>
&lt;title>&lt;/title>
&lt;script type="text/javascript" src="autocomplete.js">&lt;/script>
&lt;link rel="stylesheet" href="autocomplete.css"  type="text/css"/>
&lt;/head>
&lt;body>
&lt;form id="form1" name="form1" method="post" action="">
  &lt;input name="show_arti_topic" type="text" id="show_arti_topic" size="50" />
  &lt;input name="h_arti_id" type="hidden" id="h_arti_id" value="" />
&lt;/form>
&lt;script type="text/javascript">
// แทรก javascript
&lt;/script>
&lt;/body>
&lt;/html>
</pre>
<p>Javascript Code</p>
<pre class="javascript:controls" name="code">&lt;script type="text/javascript">
function make_autocom(autoObj,showObj){
	var mkAutoObj=autoObj; 
	var mkSerValObj=showObj; 
	new Autocomplete(mkAutoObj, function() {
		this.setValue = function(id) {		
			document.getElementById(mkSerValObj).value = id;
		}
		if ( this.isModified )
			this.setValue("");
		if ( this.value.length &lt; 1 &amp;&amp; this.isNotClick ) 
			return ;	
		return "gdata.php?q=" +encodeURIComponent(this.value);
    });	
}	
 
// การใช้งาน
// make_autocom(" id ของ input ตัวที่ต้องการกำหนด "," id ของ input ตัวที่ต้องการรับค่า");
make_autocom("show_arti_topic","h_arti_id");
&lt;/script>
</pre>
<p>gdata.php Code</p>
<pre class="php:controls" name="code">&lt;?php
header(&quot;Content-type:text/html; charset=UTF-8&quot;);        
header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;);       
header(&quot;Cache-Control: post-check=0, pre-check=0&quot;, false);       
// เชื่อมต่อฐานข้อมูล
$link=mysql_connect("localhost","root","123456") or die("error".mysql_error());
mysql_select_db("database_name",$link);
mysql_query("set character set utf8");
 
$q = urldecode($_GET["q"]);
$pagesize = 50; // จำนวนรายการที่ต้องการแสดง
$table_db="article"; // ตารางที่ต้องการค้นหา
$find_field="arti_topic"; // ฟิลที่ต้องการค้นหา
$sql = "select * from $table_db  where locate('$q', $find_field) > 0 order by locate('$q', $find_field), $find_field limit $pagesize";
$results = mysql_query($sql);
while ($row = mysql_fetch_array( $results )) {
	$id = $row["arti_id"]; // ฟิลที่ต้องการส่งค่ากลับ
	$name = ucwords( strtolower( $row["arti_topic"] ) ); // ฟิลที่ต้องการแสดงค่า
	// ป้องกันเครื่องหมาย '
	$name = str_replace("'", "'", $name);
	// กำหนดตัวหนาให้กับคำที่มีการพิมพ์
	$display_name = preg_replace("/(" . $q . ")/i", "&lt;b>$1&lt;/b>", $name);
	echo "&lt;li onselect=\"this.setText('$name').setValue('$id');\">$display_name&lt;/li>";
}
mysql_close();
?>
</pre>]]></description><pubDate>Sun, 05 Jul 2009 00:00:00 +0700</pubDate></item><item><title>กำหนดรายการใน listbox ที่ 2 จากเงื่อนไขการเลือก listbox ที่ 1 ด้วย ajax ใน jquery อย่างง่าย</title><link>http://www.ninenik.com/กำหนดรายการใน_listbox_ที่_2_จากเงื่อนไขการเลือก_listbox_ที่_1_ด้วย_ajax_ใน_jquery_อย่างง่าย-207.html</link><description><![CDATA[<p>ตัวอย่างต่อไป เป็นตัวอย่างการใช้งานอย่างง่าย สามารถนำไปประยุกต์ใช้ได้อย่างกว้างขวาง เช่น ประยุกต์ใช้สำหรับ
การเลือกจังหวัดในรายการ listbox ที่ 1 และให้แสดงอำเภอเฉพาะในจังหวัดที่เลือกใน listbox ที่ 2 หรืออื่นๆ  เป็นต้น
</p>
<p>ไฟล์ two_listbox.php </p>
<pre name="code" class="html:controls">
&lt;form id="form1" name="form1" method="post" action=""&gt;
  &lt;p&gt;ตัวเลือกที่1
    &lt;select name="list1" id="list1"&gt;
      &lt;option value=""&gt;เลือกรายการ&lt;/option&gt;
      &lt;option value="1"&gt;เลือกรายการ 1&lt;/option&gt;
      &lt;option value="2"&gt;เลือกรายการ 2&lt;/option&gt;
      &lt;option value="3"&gt;เลือกรายการ 3&lt;/option&gt;
      &lt;option value="4"&gt;เลือกรายการ 4&lt;/option&gt;
      &lt;option value="5"&gt;เลือกรายการ 5&lt;/option&gt;                
      &lt;/select&gt;
    &lt;br /&gt;
ตัวเลือกที่2
&lt;select name="list2" id="list2"&gt;
  &lt;option value=""&gt;เลือกรายการ&lt;/option&gt;
&lt;/select&gt;
&lt;/p&gt;
  &lt;p&gt;
    &lt;input type="submit" name="button" id="button" value="Submit" /&gt;
&lt;/p&gt;
&lt;/form&gt;
</pre>
<p>Javascript Code แทรกในไฟล์ two_listbox.php </p>
<pre name="code" class="javascript:controls">
&lt;script type="text/javascript" src="js/jquery-1.2.6.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(function(){
	$("select#list1").change(function(){
		var datalist2 = $.ajax({	// รับค่าจาก ajax เก็บไว้ที่ตัวแปร datalist2
			  url: "data_for_list2.php", // ไฟล์สำหรับการกำหนดเงื่อนไข
			  data:"list1="+$(this).val(), // ส่งตัวแปร GET ชื่อ list1 ให้มีค่าเท่ากับ ค่าของ list1
			  async: false
		}).responseText;		
		$("select#list2").html(datalist2); // นำค่า datalist2 มาแสดงใน listbox ที่ 2 ที่ชื่อ list2
		// ชื่อตัวแปร และ element ต่างๆ สามารถเปลี่ยนไปตามการกำหนด
	});
});
&lt;/script&gt;
</pre>
<p>ไฟล์ data_for_list2.php </p>
<pre name="code" class="php:controls">
&lt;?php
header("Content-type: application/xhtml+xml; charset=utf-8"); 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?&gt;
&lt;?php if(isset($_GET['list1']) && $_GET['list1']!=""){?&gt;
  &lt;option value=""&gt;เลือกรายการ&lt;/option&gt;
  &lt;?php for($i=1;$i&lt;=$_GET['list1'];$i++){ ?&gt;
  &lt;option value="&lt;?=$i?&gt;"&gt;เลือกรายการ &lt;?=$i?&gt;&lt;/option&gt;
  &lt;?php } ?&gt;
&lt;?php }else{ ?&gt;
  &lt;option value=""&gt;เลือกรายการ&lt;/option&gt;
&lt;?php } ?&gt;
</pre>
<p>ไฟล์ data_for_list2.php  (กรณีดึงจากฐานข้อมูล)</p>
<pre name="code" class="php:controls">
&lt;?php
header(&quot;Content-type: application/xhtml+xml; charset=utf-8&quot;); 
header(&quot;Cache-Control: no-cache, must-revalidate&quot;); // HTTP/1.1
header(&quot;Expires: Mon, 26 Jul 1997 05:00:00 GMT&quot;); // Date in the past
// ส่วนติดต่อกับฐานข้อมูล  
mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;test&quot;) or die(&quot;Cannot connect the Server&quot;);       
mysql_select_db(&quot;test&quot;) or die(&quot;Cannot select database&quot;);       
mysql_query(&quot;set character set utf8&quot;);   
?&gt;
&lt;?php if(isset($_GET['list1']) &amp;&amp; $_GET['list1']!=&quot;&quot;){?&gt;
  &lt;option value=&quot;&quot;&gt;เลือกรายการ&lt;/option&gt;
  &lt;?php
  $q=&quot;SELECT * FROM table WHERE field='&quot;.$_GET['list1'].&quot;' &quot;;
  $qr=mysql_query($q);
  while($rs=mysql_fetch_array($qr)){
  ?&gt;
  &lt;option value=&quot;&lt;?=$rs['column_data_id']?&gt;&quot;&gt;เลือกรายการ &lt;?=$rs['culumn_data']?&gt;&lt;/option&gt;
  &lt;?php } ?&gt;
&lt;?php }else{ ?&gt;
  &lt;option value=&quot;&quot;&gt;เลือกรายการ&lt;/option&gt;
&lt;?php } ?&gt;
</pre>]]></description><pubDate>Sun, 07 Jun 2009 00:00:00 +0700</pubDate></item><item><title>แสดงป้ายโฆษณา banner แบบสุ่ม random ด้วย ajax อย่างง่าย</title><link>http://www.ninenik.com/แสดงป้ายโฆษณา_banner_แบบสุ่ม_random_ด้วย_ajax_อย่างง่าย-142.html</link><description><![CDATA[<pre name="code" class="html:controls">
&lt;script language="javascript" src="ajax.js"&gt;&lt;/script&gt; 
&lt;script language="javascript"&gt;
function doajax(){
	var ajax1=createAjax();  
	ajax1.onreadystatechange=function(){
		if(ajax1.readyState==4 && ajax1.status==200){
			document.getElementById('myplace').innerHTML=ajax1.responseText;
		}else{
			return false;
		}
	}
	ajax1.open("GET","get_banner.php",true);
	ajax1.send(null);
}
window.onload=function(){
	setInterval("doajax()",2000); // กำหนดให้สลับแบนเนอร์ทุกๆ 2 วินาที
}
&lt;/script&gt;
&lt;div id="myplace"&gt;
&lt;img src="images/mybanner_1.jpg"  /&gt;
&lt;/div&gt;
</pre>
<p>โค้ด get_banner.php</p>
<pre name="code" class="php:controls">
&lt;?php
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
	$banner_img_arr=array(
		"0"=&gt;"images/mybanner_1.jpg", // key 0 เก็บรูป banner ที่ 1
		"1"=&gt;"images/mybanner_2.jpg", // key 1 เก็บรูป banner ที่ 2
		"2"=&gt;"images/mybanner_3.jpg"	// สามารถเพิ่มจำนวนได้
	);
	$banner_link_arr=array(
		"0"=&gt;"http://www.google.com", // เก็บค่า link เรียงลำดับให้ตรงคู่กับรูปภาพ
		"1"=&gt;"http://www.yahoo.com",
		"2"=&gt;"http://www.hotmail.com"	// สามารถเพิ่มจำนวนได้
	);
	$rand_banner=rand(0,2); // ค่า key 0 ถึง 2
	$banner_img=$banner_img_arr[$rand_banner];
	$banner_link=$banner_link_arr[$rand_banner];
	$html_banner="&lt;a href='".$banner_link."' target='_blank'&gt;";
	$html_banner.="&lt;img src='".$banner_img."' border='0'&gt;&lt;/a&gt;";
	echo $html_banner; // แสดง แบนเนอร์
?&gt;
</pre>
<p>ดาวน์โหลด ajax.js <a href='demo/ajax.js' target='_blank'>คลิกดาวน์โหลด</a></p>
<p>ดูตัวอย่าง <a href='demo/ajax_banner.php' target='_blank'>คลิกดูตัวอย่าง</a></p>]]></description><pubDate>Wed, 05 Nov 2008 01:05:54 +0700</pubDate></item></channel></rss>
