Long Live The King
ข้าพเจ้าไม่ได้มีพรสวรรค์พิเศษอะไร ข้าพเจ้าเพียงแต่มีความกระหายใคร่รู้อยู่เสมอ ทุ่มเทให้กับสิ่งที่อยากรู้ พากเพียรอย่างทรหด และสำรวจวิจารณ์ความรู้ของตัวเองเป็นประจำ ปัจจัยเหล่านี้คือที่มาของแนวคิดต่างๆ ของข้าพเจ้า .... อัลเบิร์ต ไอน์สไตน์

วันเสาร์ที่ 30 มีนาคม พ.ศ. 2556

Comments Box แสดงความคิดเห็นแบบไม่ต้องรีเฟรชเพจ jQuery, PHP, HTML



เมื่อหลายวันก่อนมีสมาชิก ท่านหนึ่ง.. ถามผมว่ามีคอมเม้นแบบไม่ต้อง Refresh หรือเปล่า ผมตอบว่าไม่มีแต่ก็ได้ สัญญาไว้ว่าจะมาเขียนให้ได้อ่านกัน วันนี้ก็เลยเขียนบทความคั่นรายการ Listbox ด้วย Comments box สักบทความก็แล้วกัน...

บทความนี้มีไฟล์ 3 ไฟล์ ดังนี้
jquery.js
newcomment.php
commentajax.php

ผมจะเริ่มด้วยการเขียน form ก่อน
ไฟล์ newcomment.php
<div class="main">
<div class="formcomment">
  
<form action="#" method="post">
<input name="title" id="name" type="text">
Name<span class="star">*</span>
<input name="email" id="email" type="text">
Email<span class="star">*</span><br>
<br>
<textarea name="comment" id="comment"></textarea><br>
<input class="submit" value="Submit" type="submit">
</form>
  
</div>
</div>
จากนั้นผมก็สร้าง div สำหรับโชว์คอมเม้น อยู่ภายในคลาสเมน
<div id="showcomment"></div>
ตรงนี้ท่านก็เขียนโค้ดเพื่อดึงข้อมูลคอมเม้นที่บันทึกแล้วขึ้นมาแสดงก่อนอยู่ภายในไอดีโชว์คอมเม้น
ตรงนี้ผมแค่แสดงตัวอย่างให้ท่านดูเท่านั้น
<table><tbody><tr><td valign="top">
<img src="http://www.bookneo.com/images_user/admin.png" style="float:left;
 width:60px; margin-right:20px">
</td><td>
<div style="border:2px dashed #dddddd;padding:5px;width:300px;">
<span style="font-size:16px; color:#663399; font-weight:bold"></span>
<span>
<?php echo "<font color='#1BAFD5'--><b>admin</b>";//$name ?>
</span> <br><br>
<?php echo " ตรงนี้ท่านก็เขียนโค้ดเพื่อดึงข้อมูลคอมเม้นที่บันทึกแล้วขึ้นมาแสดงก่อน";//$comment ?>
</div>
</td></tr></tbody></table>
แล้วผมก็สร้าง แท็ก ol ขึ้นมาเพื่ออัพเดทคอมเม้นที่มาใหม่พร้อมกับ แท็ก li จากไฟล์ commentajax.php
<ol id="update" class="showcomment"></ol>
แล้วผมก็ใส่ CSS ให้กับไฟล์ newcomment.php
.main{
    margin-left:250px;
    }
  
    .submit{
    margin-left:330px;
    background: #2B417D;
    font-weight: bold;
    color:white;
    border-radius:5px;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
    padding: 3px 3px 3px 3px;
    }
    textarea
    {
    color:#000000;
    font-size:14px;
    border:#1BAFD5 solid 2px;
    height:124px;
    margin-bottom:10px;
    width:400px;
    height:80px;
    }
    .star
    {
    color:#FF0000;
    font-size:16px;
    font-weight:bold;
    padding-left:5px;
    }
    #email{
  
    }
    .cleaner_h5{
    height:5px;
    }
    #update{
    border:0px solid #dddddd;
    width:398px;
    padding:10px;
    word-wrap:break-word;
    overflow: hidden;
    }
    ol.showcomment{
     list-style:none;
     font-size:1.2em;
     margin-left: -10px;
    }
    ol.showcomment li{
    display:none;
    position:relative;
    padding:.7em 0 .6em 0;
    }
    ol.oldcomment{
    list-style:none;
    font-size:1.2em;
    margin-left: 0px;
    }
    ol.oldcomment li{
    position:relative;
    padding:.7em 0 .6em 0;
    }
จากนั้นก็มาถึงคิวของ jQuery ที่เราจะส่งข้อมูลแบบไม่ต้อง refresh กัน
$(function() {
  
$(".submit").click(function() {
  
var name = $("#name").val();
var email = $("#email").val();
var comment = $("#comment").val();
var dataString = 'name='+ name + '&email=' + email + '&comment=' + comment;
//alert(dataString);
if(name=='' || email=='' || comment=='')
{
alert('กรุณากรอกข้อมูลให้ครบด้วยนะกรึ๊บ!');
}
else
{
  
$.ajax({
type: "POST",
url: "commentajax.php",
data: dataString,
cache: false,
success: function(data){
$("ol#update").append(data);
$("ol#update li:last").fadeIn("slow"); //นำข้อมูลมาแสดงด้วยการต่อท้าย li ตัวล่าสุด
document.getElementById('email').value='';//สั่งให้ form ทั้งหมดว่างเปล่า
document.getElementById('name').value='';
document.getElementById('comment').value='';
}
});
}
return false;
});
});
ไปที่ไฟล์ commentajax.php
รับข้อมูลเพื่อเก็บลงฐานข้อมูล
if($_POST)
{
$name=$_POST['name'];
$email=$_POST['email'];
$comment=$_POST['comment'];
  
//เขียนโค้ดบันทึกลงฐานข้อมูลตรงนี้ครับ
  
}
  
else { }
จากนั้นก็นำข้อมูลที่รับมานำมาแสดงเพื่อ return ค่าส่งกลับไปให้กับ javascript นำไปแสดง
<li class="box" valign="top">
<table><tbody><tr><td valign="top">
<img src="http://www.bookneo.com/images/default_avatar.gif" style="float:left;
 width:60px; margin-right:20px">
</td><td>
<div style="border:2px dashed #dddddd;padding:5px;width:300px;">
<span style="font-size:16px; color:#3859BB; font-weight:bold">
<?php echo $name;?></span> <br><br>
<?php echo $comment; ?>
  
</div>
</td></tr></tbody></table>
</li>
โค้ดที่เสร็จแล้ว
ไฟล์ newcomment.php
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function() {
  
$(".submit").click(function() {
  
var name = $("#name").val();
var email = $("#email").val();
var comment = $("#comment").val();
var dataString = 'name='+ name + '&email=' + email + '&comment=' + comment;
//alert(dataString);
if(name=='' || email=='' || comment=='')
{
alert('กรุณากรอกข้อมูลให้ครบด้วยนะกรึ๊บ!');
}
else
{
  
$.ajax({
type: "POST",
url: "commentajax.php",
data: dataString,
cache: false,
  
success: function(data){
$("ol#update").append(data);
$("ol#update li:last").fadeIn("slow");
document.getElementById('email').value='';
document.getElementById('name').value='';
document.getElementById('comment').value='';
}
});
}
return false;
});
});
  
</script>
    <style type="text/css">
    .main{
    margin-left:250px;
    }
  
    .submit{
    margin-left:330px;
    background: #2B417D;
    font-weight: bold;
    color:white;
    border-radius:5px;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
    padding: 3px 3px 3px 3px;
    }
    textarea
    {
    color:#000000;
    font-size:14px;
    border:#1BAFD5 solid 2px;
    height:124px;
    margin-bottom:10px;
    width:400px;
    height:80px;
    }
    .star
    {
    color:#FF0000;
    font-size:16px;
    font-weight:bold;
    padding-left:5px;
    }
    #email{
    
    }
    .cleaner_h5{
    height:5px;
    }
    #update{
    border:0px solid #dddddd;
    width:398px;
    padding:10px;
    word-wrap:break-word;
    overflow: hidden;
    }
    ol.showcomment{
     list-style:none;
     font-size:1.2em;
     margin-left: -10px;
    }
    ol.showcomment li{
    display:none;
    position:relative;
    padding:.7em 0 .6em 0;
    }
    ol.oldcomment{
    list-style:none;
    font-size:1.2em;
    margin-left: 0px;
    }
    ol.oldcomment li{
    position:relative;
    padding:.7em 0 .6em 0;
    }
  
    </style>
      
      
      
  
<div class="main">
  
<div id="showcomment">
  
  
<table><tbody><tr><td valign="top">
<img src="http://www.bookneo.com/images_user/admin.png" style="float:left;
 width:60px; margin-right:20px">
</td><td>
<div style="border:2px dashed #dddddd;padding:5px;width:300px;">
<span style="font-size:16px; color:#663399; font-weight:bold"></span>
<span>
<?php echo "<font color='#1BAFD5'><b>admin</b>";//$name ?>
</span> <br><br>
<?php echo " ตรงนี้ท่านก็เขียนโค้ดเพื่อดึงข้อมูลคอมเม้นที่บันทึกแล้วขึ้นมาแสดงก่อน";//$comment ?>
</div>
</td></tr></tbody></table>
  
  
<div style="margin-top:-20px;"></div>
  
<ol id="update" class="showcomment"></ol>
</div>
  
<div class="formcomment">
<div id="loading"></div>
<form action="#" method="post">
  
<input name="title" id="name" type="text">
Name<span class="star">*</span>
<input name="email" id="email" type="text">
Email<span class="star">*</span><br>
<br>
<textarea name="comment" id="comment"></textarea><br>
<input class="submit" value="Submit" type="submit">
  
</form>
  
</div>
</div>
ไฟล์ commentajax.php
<?php

if($_POST)
{
$name=$_POST['name'];
$email=$_POST['email'];
$comment=$_POST['comment'];
    
//เขียนโค้ดบันทึกลงฐานข้อมูลตรงนี้ครับ
  
}
  
else { }
  
?>
<li class="box" valign="top">
<table><tbody><tr><td valign="top">
<img src="http://www.bookneo.com/images/default_avatar.gif" style="float:left;
 width:60px; margin-right:20px">
</td><td>
<div style="border:2px dashed #dddddd;padding:5px;width:300px;">
<span style="font-size:16px; color:#3859BB; font-weight:bold">
<?php echo $name;?></span> <br><br>
<?php echo $comment;?>
  
</div>
</td></tr></tbody></table>
</li>
บทความนี้ก็จบลงเพียงเท่านี้ครับ ผิดพลาดยังไง ขออภัยด้วยครับ



Read More

วิธีการส่งค่าจาก Multiple Listbox ด้วย PHP, jQuery, jSon



เป็นบทความต่อเนื่องจากบทความก่อนหน้า เป็นการส่งค่าแบบ Multiple Listbox ซึ่งสามารถส่งค่าได้ หลายๆตัวในการกด Submit เพียงครั้งเดียว ด้วยการส่งค่าแบบ Array ด้วย PHP, jQuery, jSon...

รูปแบบการส่งค่าด้วย PHP

ข้อสังเกตุ
ท่านสังเกตุดูนะครับตรง name="multiplelisbox[]" ตรงนี้เป็นการส่งค่าแบบ Array ไปให้
PHP ประมวลผลนะครับ

รูปแบบการส่งค่าด้วย jQuery + jSon
jQuery
ข้อสังเกตุ
เก็บค่าแบบ value -> $(selected).val();
เก็บค่าแบบ text -> $(selected).text();
ตรงนี้ var datastring = {'textvalues':JSON.stringify(textvalues)} เป็นการสร้างตัวแปรข้อมูลแบบ jSon ครับ
HTML
Multiple Listbox

รูปแบบการส่งค่าด้วย jQuery
jQuery
ข้อสังเกตุ
เก็บค่าแบบ value -> document.formjquery.listboxjquery[i].value ;
เก็บค่าแบบ text -> document.formjquery.listboxjquery[i].text ;
ตรงนี้ document.formjquery.listboxjquery.length; นับแถวใน from ก่อนจากนั้นก็วนลูป
เฉพาะตัวที่ selected ออกมาครับ
HTML Multiple Listbox

ไฟล์ listboxphp.php สำหรับการรับค่าจาก Listbox
/*---- รับค่าจากการส่งแบบ PHP ----*/
if(isset($_POST['multiplelisboxphp'])){
$text = array($_POST['multiplelisboxphp']);
echo "
"; echo "textvalues = "; foreach ($text as $key => $textvalues){ for($i=0; $i< count($textvalues); $i++){ echo $textvalues[$i]; echo " "; } echo "
"; echo "เป็นการเก็บค่าของ value นะครับ"; } } /*---- รับค่าจากการส่งแบบ jQuery + jSon ----*/ if($_POST['textvalues']){ $textvalues = $_POST['textvalues']; $find = array('\\','"','[',']'); $replace = array("","","",""); $textvalues = str_replace($find, $replace, $textvalues); echo $textvalues; //print_r($textvalues); } /*---- รับค่าจากการส่งแบบ jQuery ----*/ if($_POST['textval']){ $textval = $_POST['textval']; echo $textval; } ?>

บทความนี้ก็ขอจบเพียงเท่านี้ครับ ผิดพลาดยังไง ขออภัยด้วยครับ


Read More

วันพุธที่ 20 มีนาคม พ.ศ. 2556

รู้จักกับ JSON ก่อนที่จะก้าวต่อไป....



json ย่อมาจากคำว่า " JavaScript Object Notation " เป็นฟอร์แมตสำหรับแลกเปลี่ยนข้อมูลคอมพิวเตอร์ ฟอร์แมต JSON นั้นอยู่ในรูปข้อความธรรมดา (plain text) ที่ทั้งมนุษย์และโปรแกรมคอมพิวเตอร์สามารถอ่านเข้าใจได้ ปัจจุบัน JSON นิยมใช้ในเว็บแอปพลิเคชัน โดยเฉพาะ AJAX โดย JSON เป็นฟอร์แมตทางเลือก ในการส่งข้อมูล นอกเหนือไปจาก XML ซึ่งนิยมใช้กันอยู่แต่เดิม สาเหตุที่ JSON เริ่มได้รับความ นิยมเป็นเพราะกระชับและเข้าใจง่ายกว่า XML ....

JSON นั้นใช้ syntax ของภาษาจาวาสคริปต์ แต่ไม่ถูกมองว่าเป็นภาษาโปรแกรม กลับถูกมอง
ว่าเป็นภาษาในการแลกเปลี่ยนข้อมูลมากกว่า ในปัจจุบันมีไลบรารีของภาษาโปรแกรมอื่นๆ
ที่ใช้ประมวลผลข้อมูลในรูปแบบ JSON มากมาย

โค้ดตัวอย่างของ JSON
{ "firstName" : "Bookneo",
                "lastName"  : "Json",
                "age"       : 27
}

json ซึ่งเป็น Text ธรรมดาๆที่ถูกจัดเรียงให้อยู่ในรูปแบบของ Object Array
โดยใช้เครื่องหมาย[ ] แทน Array และ { } แทน Hash (หรือ Associative Array)
เขียนคร่อมข้อมูลไว้ภายใน ซึ่งเป็นการกำหนดคุณสมบัติให้กับวัตถุ
ด้วยการสร้างวัตถุที่เป็นข้อมูลขึ้นมาในรูปแบบของ JSON เช่น

รูปแบบ json
var myObject = {};

ถ้าเป็นแบบเก่าเราจะกำหนดด้วยรูปแบบนี้ ซึ่งเป็นการสร้างตัวแปรชนิด Object ขึ้นมา
var myObject = new Object();

ตัวอย่างการใช้ Object Array มิติเดียวสร้างวัตถุที่เป็นข้อมูลแบบ JSON
var myObject = { "firstName" : "Bookneo",
                  "lastName"  : "Json",
                   "age"       : 27
                };
//เรียกใช้
document.writeln(myObject.firstName);  // Outputs Bookneo
document.writeln(myObject.lastName);   // Outputs Json
document.writeln(myObject.age);        // Outputs 27

//การเรียกใช้แบบ Associative Array
document.writeln(myObject["firstName"]);  // Outputs Bookneo
document.writeln(myObject["lastName"]);   // Outputs Json
document.writeln(myObject["age"]);        // Outputs 27

แต่เมื่อเราต้องการเพิ่ม Object เข้าไปอีก เราก็จะสร้างข้อมูลในรูปแบบของ JSON แบบนี้
ตัวอย่างการใช้ Object Array 2มิติสร้างวัตถุที่เป็นข้อมูลแบบ JSON
var myObject = {
                'animal' : {'dog' : 'friendly' }
               };
//เรียกใช้
document.writeln(myObject.animal.dog); // outputs friendly

แต่เมื่อข้อมูลมีความซับซ้อนมากขึ้นการเก็บข้อมูลก็จะเป็นลักษณะ Object Array แบบหลายมิติ
ตัวอย่างการใช้ Object Array แบบหลายมิติสร้างวัตถุที่เป็นข้อมูลแบบ JSON
var employees = {
    "accounting"    : [
                        { "firstName" : "John",  // First Element
                          "lastName"  : "Doe",
                          "age"       : 23 },

                        { "firstName" : "Mary",  // Second Element
                          "lastName"  : "Smith",
                          "age"       : 32 }
                      ],                               
      "sales"       : [ 
                        { "firstName" : "Sally", // First Element
                          "lastName"  : "Green",
                          "age"       : 27 },

                        { "firstName" : "Jim",   // Second Element
                          "lastName"  : "Galley",
                          "age"       : 41 }
                      ] 
                }
//เรียกใช้
document.writeln(employees.accounting[0].firstName
                + ' ' + employees.accounting[0].lastName);
document.writeln(employees.sales[1].firstName
                + ' ' + employees.sales[1].lastName);

accounting[0] คือ Element ตัวแรกของ accounting ก็คือ John
accounting[1] คือ Element ตัวที่สองของ accounting ก็คือ Mary

JSON สามารถจัดเก็บ Object ไว้ภายใน Object และ Array ไว้ภายใน Array ได้โดยไม่มีขีดจำกัด
ด้วยโครงสร้างของข้อมูลที่เรียบง่าย และมีดัชนีข้อมูลที่ถูกต้องแม่นยำทุกข้อมูล

เอาล่ะครับเราก็รู้จักกับ JSON กันพอสังเขปเท่านั้นนะครับ ส่วนในเรื่องของการใช้งาน เช่น การส่งข้อมูล
การรับข้อมูลแบบ JSON นั้นท่านก็ไปศึกษาเพิ่มเติมเอานะครับ หรือไม่ผมก็อาจจะเขียนบทความเพิ่มเติมในภายหน้า
ก็เป็นได้ครับ

ขอจบบทความนี้เพียงเท่านี้ครับ ผิดพลาดยังไงต้องขอ อภัยด้วยครับ .....


Read More

เก็บ Value, Text จาก Multiple Listbox ด้วย jQuery แบบ Array



เป็นบทความต่อเนื่องจากบทความก่อนหน้า ซึ่งยังขาดการเก็บค่าแบบ Multiple Listbox ซึ่งสามารถเก็บค่าได้ หลายๆตัวในการกด Submit เพียงครั้งเดียว ด้วยการเก็บแบบ Array ด้วย Javascript...

รูปแบบ
jQuery
var values = [];
var textvalues = [];
$('#multiplelistbox :selected').each(function(i, selected) {
values[i] = $(selected).val();
textvalues[i] = $(selected).text();
});


ตัวอย่าง
jQuery
$(function(){
    
$('#textsubmit').click(function(){
var values = [];
var textvalues = [];
$('#multiplelistbox :selected').each(function(i, selected) {
    values[i] = $(selected).val();
    textvalues[i] = $(selected).text();
    alert('text = '+textvalues[i]);
       });
   });
});
Html
Multiple Listbox


Demo

Multiple Listbox





Read More

วันเสาร์ที่ 2 มีนาคม พ.ศ. 2556

เก็บ Value, Text จาก listbox ด้วย jQuery



วิธีเก็บค่าจาก listbox ที่เราทำการเลือกเพื่อส่งค่าต่างๆไปเก็บยังฐานข้อมูลด้วย jQuery เป็นวิธีที่ค่อน ข้างง่ายสะดวก ผมว่างั้นนะ เก็บได้ทั้ง Value และ Text ของ Listbox ....

รูปแบบ
จากรูปแบบด้านบน
เราจะเก็บ value จาก Listbox ด้วย jQuery จากโค้ดนี้
$('#select').val();

เราจะเก็บ Text จาก Listbox ด้วย jQuery จากโค้ดนี้
$('#select :selected').text();

ตัวอย่างเก็บ Value
jQuery
$(function(){
$('#valuesubmit').click(function(){
    var values = $('#selectvalue').val();
       alert('value = '+values);
    });  
});
Html

ทดสอบ


ตัวอย่างเก็บ Text
jQuery
$(function(){
$('#textsubmit').click(function(){
    var text = $('#selecttext :selected').text();
       alert('Text = '+text);
    });
});
Html

ทดสอบ


บทความนี้ก็จบเพียงเท่านี้ ผิดพลาดยังไงขออภัยด้วยครับ .....

Read More

HTML ตัวเลือกแบบ Listbox



Listbox ใช้แสดงรายการตัวเลือก ซึ่งสามารถกำหนดได้ว่าจะให้เลือกเพียงตัวเดียว หรือว่าเลือกได้หลายตัว พร้อมกัน ฟิลด์ชนิดนี้สร้างขึ้นมาจากแท็ก <select> โดยแต่ละตัวเลือกจะถูกกำหนดด้วยแท็ก <option> ซึ่งอยู่ภายในแท็ก <select> อีกทีหนึ่ง.....
รูปแบบ
Listbox เลือกได้เพียงตัวเดียว
name = ชื่อของ Listbox
size = ความสูงของ Listbox ถ้ากำหนดน้อยกว่าจำนวนตัวเลือกของ Listbox ก็จะเป็น Listbox แบบ Dropdown
value = กำหนดค่าที่ต้องการส่งไปประมวลผล
ตัวอย่าง
คุณชอบทานอะไร :)
คุณชอบทานอะไร :)

Listbox เลือกได้หลายตัวเลือก
mutiple = กำหนดให้เลือกได้หลายตัวพร้อมกัน
selected = กำหนดให้ตัวเลือกนั้นถูกเลือกไว้ตอนเริ่มต้น
ตัวอย่าง
คุณชอบเสื้อลายอะไร :D
คุณชอบเสื้อลายอะไร :D
ใช้วิธี select หรือกด Ctrl ในการเลือก

ตัวอย่าง Listbox แบบ Dropdown
ข้อใดต่อไปนี้ไม่เข้าพวก :D

ข้อใดต่อไปนี้ไม่เข้าพวก :D


บทความนี้จบลงเพียงเท่านี้ ตกลงคุณชอบทานอะไรครับ :)

Read More

© Bookneo, AllRightsReserved.

ขับเคลื่อนโดย Blogger Designed by Nikhorn Thongchuay