<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>multi listbox - itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</title>
	<atom:link href="https://www.itoffside.com/tag/multi-listbox/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.itoffside.com</link>
	<description>ข้อมูลข่าวสารและเรื่องราวบนโลกของไอทีที่ ล้ำหน้า พร้อมสาระการเขียนโปรแกรมคอมพิวเตอร์</description>
	<lastBuildDate>Mon, 16 Mar 2020 07:52:59 +0000</lastBuildDate>
	<language>th</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.itoffside.com/wp-content/uploads/2020/04/cropped-favicon-96x96-1-32x32.png</url>
	<title>multi listbox - itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</title>
	<link>https://www.itoffside.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>กำหนดรายการ Listbox ที่ 2 จากเงื่อนไขในการเลือก Listbox ที่ 1 ด้วย Ajax กับ jQuery</title>
		<link>https://www.itoffside.com/select-multi-listbox-ajax-jquery-php/</link>
					<comments>https://www.itoffside.com/select-multi-listbox-ajax-jquery-php/#comments</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Sun, 13 Jul 2014 09:17:53 +0000</pubDate>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[listbox]]></category>
		<category><![CDATA[multi listbox]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[select listbox]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=235</guid>

					<description><![CDATA[<p>การกำหนดรายการ Listbox ที่ 2 โดยเงื้อนไขจากการเลือก Listbox ที่ 1 หรือ Dropdown สามารถนำไปประยุกต์ใช้งานได้อย่างหลากหลายเช่น การทำ Listbox (Dropdown) จังหวัด &#8211; อำเภอ โดยเมื่อมีการเลือก Listbox (Dropdown) จังหวัด แล้ว Listbox (Dropdown) อำเภอ จะแสดงรายการอำเภอเฉพาะจังหวัดที่เลือกเท่านั้น โดยบทค...</p>
<p>The post <a href="https://www.itoffside.com/select-multi-listbox-ajax-jquery-php/">กำหนดรายการ Listbox ที่ 2 จากเงื่อนไขในการเลือก Listbox ที่ 1 ด้วย Ajax กับ jQuery</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>การกำหนดรายการ <strong>Listbox</strong> ที่ 2 โดยเงื้อนไขจากการเลือก <strong>Listbox</strong> ที่ 1 หรือ <strong>Dropdown</strong> สามารถนำไปประยุกต์ใช้งานได้อย่างหลากหลายเช่น การทำ <strong>Listbox</strong> (<strong>Dropdown</strong>) จังหวัด &#8211; อำเภอ โดยเมื่อมีการเลือก Listbox (<strong>Dropdown</strong>) จังหวัด แล้ว Listbox (<strong>Dropdown</strong>) อำเภอ จะแสดงรายการอำเภอเฉพาะจังหวัดที่เลือกเท่านั้น โดยบทความนี้จะใช้ <strong>PHP</strong>, <strong>Javascript</strong> (<strong>jQuery</strong>) โดยใช้เทคโนโลยีของ <strong>Ajax</strong> เป็นตัวอย่าง และใช้ฐานข้อมูล <strong>MySQL</strong><span id="more-235"></span></p>
<h1>update บทความที่เกี่ยวข้องและปรับปรุงใหม่</h1>
<p><span style="font-size: 20px;"><span style="color: #ff00ff;">ตอนนี้มีบทความ การทำ listbox/dropdown แบบ 3 ชั้นแล้ว ละเอียดกว่าเดิม</span></span> <span style="text-decoration: underline; font-size: 20px;"><a href="https://www.itoffside.com/dropdown-dynamic-3-level-with-ajax/">คลิกเพื่อดู</a></span></p>
<p>เพื่อให้เห็นภาพลองดูตัวอย่าง <a title="ตัวอย่าง multi Dropdown/listbox" href="http://sysapp.itoffside.com/multi_listbox/show.php" target="_blank" rel="noopener noreferrer">ได้ที่นี้ Demo</a></p>
<p>1. นำ script sql ด้านล่างนี้ไป run ใน <em><span style="color: #000000;">phpmyadmin</span></em></p><pre class="crayon-plain-tag">SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

CREATE TABLE IF NOT EXISTS `ml_categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'รหัส',
  `categorie_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL COMMENT 'ชื่อกลุ่ม',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;

--
-- Dumping data for table `ml_categories`
--

INSERT INTO `ml_categories` (`id`, `categorie_name`) VALUES
(1, 'เครื่องใช้ไฟฟ้า'),
(2, 'กีฬา'),
(3, 'อสังหาริมทรัพย์');

-- --------------------------------------------------------

--
-- Table structure for table `ml_products`
--

CREATE TABLE IF NOT EXISTS `ml_products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `product_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `categories_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `categories_id` (`categories_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16 ;

--
-- Dumping data for table `ml_products`
--

INSERT INTO `ml_products` (`id`, `product_name`, `categories_id`) VALUES
(1, 'โทรทัศน์', 1),
(2, 'โปรเจ็กเตอร์', 1),
(3, 'เครื่องเล่นและบันทึก DVD', 1),
(4, 'เครื่องเสียง', 1),
(5, 'อุปกรณ์ซักผ้า', 1),
(6, 'กอลฟ์', 2),
(7, 'เทนนิส', 2),
(8, 'บาสเก็ตบอล', 2),
(9, 'วิ่ง', 2),
(10, 'เบสบอล &amp; ซอฟท์บอล', 2),
(11, 'แบดมินตัน', 2),
(12, 'บ้าน', 3),
(13, 'ทาวน์เฮ้าส์', 3),
(14, 'คอนโดมีเนี่ยม', 3),
(15, 'ตึกแถว', 3);

--
-- Constraints for dumped tables
--

--
-- Constraints for table `ml_products`
--
ALTER TABLE `ml_products`
  ADD CONSTRAINT `ml_products_ibfk_1` FOREIGN KEY (`categories_id`) REFERENCES `ml_categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;</pre><p>ในฐานข้อมูลนี้มี 2 ตารางคือ ตารางหมวดหมู่(<strong>ml_categories</strong>) และตารางสินค้า(<strong>ml_products</strong>)</p>
<p>2. หลักจากที่ Run script ในการสร้างตาราง categorie และ product มาแล้วต่อไปจะเป็นการเขียนไฟล์ <span style="text-decoration: underline; color: #ff0000;">show.php</span> กันครับ ดู Code ด้านล่างได้เลยครับ</p><pre class="crayon-plain-tag">&lt;?php
/*
 * connection database
 */
$Connect = mysql_connect('localhost', 'root', '') or die('Error connecting to MySQL');
mysql_select_db('sysapp', $Connect) or die('Database sysapp does not exist!');
mysql_query('SET NAMES UTF8');

/*
 * select data
 */
$Query = mysql_query('SELECT * FROM ml_categories') or die('Error query #12');
?&gt;
&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;meta charset="UTF-8"&gt;
        &lt;title&gt;itOffside.com&lt;/title&gt;
        &lt;script src="jquery-1.11.1.min.js" type="text/javascript"&gt;&lt;/script&gt;
        &lt;script type="text/javascript"&gt;
            $(document).ready(function() {
                $('#categories').change(function() {
                    $.ajax({
                        type: 'POST',
                        data: {categories: $(this).val()},
                        url: 'select_product.php',
                        success: function(data) {
                            $('#products').html(data);
                        }
                    });
                    return false;
                });
            });
        &lt;/script&gt;
    &lt;/head&gt;
    &lt;body style="width: 100%;padding-top: 50px;"&gt;
        &lt;form name="multilistbox" method="POST"&gt;
            &lt;table border="0" width="500" cellpadding="5" style="margin: 0 auto;"&gt;
                &lt;tr&gt;
                    &lt;td style="text-align: right; width: 200px;"&gt;หมวดหมู่&lt;/td&gt;
                    &lt;td&gt;
                        &lt;select name="categories" id="categories"&gt;
                            &lt;option value=""&gt;เลือกข้อมูลหมวดหมู่&lt;/option&gt;
                            &lt;?php
                            while ($Result = mysql_fetch_array($Query)) {
                                ?&gt;
                                &lt;option value="&lt;?php echo $Result['id']; ?&gt;"&gt;
                                    &lt;?php echo $Result['categorie_name']; ?&gt;
                                &lt;/option&gt;
                                &lt;?php
                            }
                            ?&gt;
                        &lt;/select&gt;
                    &lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td style="text-align: right;"&gt;สินค้า&lt;/td&gt;
                    &lt;td&gt;
                        &lt;select name="products" id="products"&gt;&lt;/select&gt;
                    &lt;/td&gt;
                &lt;/tr&gt;
            &lt;/table&gt;
        &lt;/form&gt;     
    &lt;/body&gt;
&lt;/html&gt;</pre><p>เพิ่มเติมไฟล์ jquery สามารถ <a title="jquery-1.11.1.min.js" href="http://sysapp.itoffside.com/multi_listbox/jquery-1.11.1.min.js" target="_blank" rel="noopener noreferrer">ดาวน์โหลดได้ที่นี้ jquery</a></p>
<p>จาก code ด้านบนผมอธิบายไล่ตามบรรทัดดังนี้ครับ<br />
<span style="color: #ff00ff;">บรรทัดที่ 5-7</span> : เป็นใช้ฟังก์ชั่นการเชื่อมต่อฐานข้อมูล MySQL พร้อมกำหนดอักขระ UTF8<br />
<span style="color: #ff00ff;">บรรทัดที่ 12</span> : ฟังก์ชั่น Query? SELECT ข้อมูลหมวดหมู่สินค้าหรือตาราง categories นั้นเอง<br />
<span style="color: #ff00ff;">บรรทัดที่ 19</span> : include ไฟล์ jquery เวอร์ชั่น 1.11.1<br />
<span style="color: #ff00ff;">บรรทัดที่ 20-34</span> : เป็นการเขียน jquery เพื่อร้องขอ(<strong><span style="text-decoration: underline;">Request</span></strong>)ข้อมูล <strong><span style="text-decoration: underline;">SERVER</span> </strong>ผ่าน <strong>AJAX</strong> โดยถ้ามีการเกิดเหตุการณ์(event) ของการเปลี่ยนแปลง <strong>Listbox</strong> หรือ Dropdown ของหมวดหมู่จะทำให้มีการส่งข้อมูล categorie_id แบบ POST? ไปยังไฟล์ select_product.php ซึ่งไฟล์ select_product.php นี้เองที่ทำหน้าในการ Select ข้อมูลสินค้า (products) ตามหมวดหมู่ แล้วตอบกลับ(<strong><span style="text-decoration: underline;">R</span>esponse</strong>)โดยการส่งข้อมูลที่ได้จากการ Select กลับไปยังไฟล์ <span style="color: #ff0000;">show.php</span><br />
<span style="color: #ff00ff;">บรรทัดที่ 37-63</span> : เป็นฟอร์ม Listbox หรือ <strong>Dropdown</strong><br />
สรุป ส่วนสำคัญของไฟล์นี้คือการ include ไฟล์ jquery การใช้งาน jquery ajax ให้ติดต่อไปยัง <span style="text-decoration: underline;"><strong>SERVER</strong> </span>และ การอ้างอิง Element ID ให้เชื่อมโยงกัน</p>
<p>&nbsp;</p>
<p>3. เขียนไฟล์ <span style="color: #ff0000;">select_product.php</span> ในการ Select ข้อมูลสินค้าตามการเลือก <strong>Listbox</strong> หรือ <strong>Dropdown</strong></p><pre class="crayon-plain-tag">&lt;?php

/*
 * connection database
 */
$Connect = mysql_connect('localhost', 'root', '') or die('Error connecting to MySQL');
mysql_select_db('sysapp', $Connect) or die('Database sysapp does not exist!');
mysql_query('SET NAMES UTF8');
/*
 * check POST
 */
$categorie_id = isset($_POST['categories']) ? $_POST['categories'] : "";
$Query = mysql_query("SELECT * FROM ml_products WHERE categories_id='{$categorie_id}'");
$Rows = mysql_num_rows($Query);
if ($Rows &gt; 0) {
    while ($Result = mysql_fetch_array($Query)) {
        echo "&lt;option value=\"" . $Result['id'] . "\"&gt;" . $Result['product_name'] . "&lt;/option&gt;";
    }
}else{
    echo "&lt;option value=\"\"&gt;ไม่มีสินค้าในหมวดหมู่ที่เลือก&lt;/option&gt;";
}</pre><p>อธิบาย Code ของไฟล์ <span style="color: #ff0000;">select_product.php</span><br />
บรรทัดที่ 12 : <span class="crayon-v">เช็คค่าตัวแปร <span class="crayon-v">$_POST[&#8216;categories&#8217;] ซึ่งตัวแปรที่ส่งมาจากไฟล์ show.php นั้นเองโดยตัวแปรเป็น TYPE POST โดยเก็บค่าไว้ในตัวแปร <span class="crayon-v">$categorie_id</span></span></span><br />
สรุป มีการ Select ข้อมูลจากตาราง ml_product โดยใช้เงื้อนไข categories_id=&#8217;<span class="crayon-v">$categorie_id</span>&#8216; หมายถึงดึงเฉพาะข้อมูลตามหมวดหมู่ที่เลือกในหน้า show.php นั้นเอง</p>
<p>ผลลัพธ์ที่ได้</p>
<figure id="attachment_243" aria-describedby="caption-attachment-243" style="width: 324px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" class="size-full wp-image-243" src="https://www.itoffside.com/wp-content/uploads/2014/07/select-multi-listbox-ajax-jquery-php-02.jpg" alt="กำหนดรายการ Listbox ที่ 2 จากเงื่อนไขในการเลือก Listbox ที่ 1 ด้วย Ajax กับ jQuery" width="324" height="187" srcset="https://www.itoffside.com/wp-content/uploads/2014/07/select-multi-listbox-ajax-jquery-php-02.jpg 324w, https://www.itoffside.com/wp-content/uploads/2014/07/select-multi-listbox-ajax-jquery-php-02-300x173.jpg 300w" sizes="(max-width: 324px) 100vw, 324px" /><figcaption id="caption-attachment-243" class="wp-caption-text">รูปภาพก่อนเปลี่ยนหมวดหมู่</figcaption></figure>
<figure id="attachment_242" aria-describedby="caption-attachment-242" style="width: 335px" class="wp-caption alignnone"><a href="https://www.itoffside.com/wp-content/uploads/2014/07/select-multi-listbox-ajax-jquery-php-01.jpg"><img decoding="async" class=" wp-image-242" src="https://www.itoffside.com/wp-content/uploads/2014/07/select-multi-listbox-ajax-jquery-php-01.jpg" alt="รูปภาพหลังเปลี่ยนหมวดหมู่" width="335" height="176" srcset="https://www.itoffside.com/wp-content/uploads/2014/07/select-multi-listbox-ajax-jquery-php-01.jpg 345w, https://www.itoffside.com/wp-content/uploads/2014/07/select-multi-listbox-ajax-jquery-php-01-300x157.jpg 300w" sizes="(max-width: 335px) 100vw, 335px" /></a><figcaption id="caption-attachment-242" class="wp-caption-text">รูปภาพหลังเปลี่ยนหมวดหมู่</figcaption></figure>
<p>&nbsp;</p>
<p>สำหรับบทความนี้ก็มีเพียงเท่านี้ครับหากใครมีข้อสงสัยหรือปัญหา สอบถามได้ที่ comment ด้านล่างบทความได้เลยครับ</p><p>The post <a href="https://www.itoffside.com/select-multi-listbox-ajax-jquery-php/">กำหนดรายการ Listbox ที่ 2 จากเงื่อนไขในการเลือก Listbox ที่ 1 ด้วย Ajax กับ jQuery</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/select-multi-listbox-ajax-jquery-php/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
			</item>
	</channel>
</rss>
