พี่นาโน หรือพี่ ๆทุกคน เอากระทู้นี้ให้เห็นชัด ๆเลยค่ะ ช่วยแก้หน่อยนะคะ
น้องทำ multi combobox แต่มันไม่แสดงผลอ่ะค่ะ เลยเอามาให้ดูเผื่อพี่จะแก้ให้ได้ค่ะ
มี 2 ตาราง คือ products (หมวดสินค้า) subproducts (สินค้าย่อย) ไฟล์แรกที่เลือกคือ showitem.php เพื่อไปเรียก itemshow.php อีกที นไม่แสดงอะไรเลย
ไฟล์ showitem.php
Code (PHP)
<?
echo "<form name=sel>\n";
echo "หมวดสินค้า : <font id=productscode><select>\n";
echo "<option value='0'>--------------------</option> \n" ;
echo "</select></font>\n";
echo "รายการสินค้า : <font id=productssubcode><select>\n";
echo "<option value='0'>--------------------</option> \n" ;
echo "</select></font>\n";
echo "<font id=result></font>\n";
echo "</form>\n";
?>
<script language=Javascript>
function Inint_AJAX() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript
alert("XMLHttpRequest not supported");
return null;
};
function dochange(src, val) {
var req = Inint_AJAX();
req.onreadystatechange = function () {
if (req.readyState==4) {
if (req.status==200) {
document.getElementById(src).innerHTML=req.responseText; //ÃѺ¤èÒ¡ÅѺÁÒ
}
}
};
req.open("GET", "itemshow.php?data="+src+"&val="+val); //ÊÃéÒ§ connection
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=tis-620"); // set Header
req.send(null); //Ê觤èÒ
}
function banchange() {
document.getElementById('result').innerHTML=sel.productscode.value+', '+sel.productssubcode.value+';
}
window.onLoad=dochange('productscode', -1);
</script>
ไฟล์ itemshow.php
Code (PHP)
<?
//กำหนดให้ IE อ่าน page นี้ทุกครั้ง ไม่ไปเอาจาก cache
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header("content-type: application/x-javascript; charset=tis-620");
$data=$_GET['data'];
$val=$_GET['val'];
//ค่ากำหนดของ ฐานข้อมูล
$host="localhost";
$username="";
$password="";
$dbname="computerservice";
//เชื่อมต่อกับ MySQL
$connect= mysql_connect($host, $username, $password) or die("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
$db=mysql_select_db($dbname) or die("ฐานข้อมูลไม่ถูกต้อง");
if ($data=='productscode') {
echo $sql="select * from products order by id";
$result = mysql_query($sql);
echo "<select name='productscode' onChange=\"dochange('productssubcode', this.value)\">\n";
echo "<option value='0'>-เลือกหมวดสินค้า-</option>\n";
echo "<option value='0'>--------------------</option>\n";
while($fetcharr = mysql_fetch_array($result)) {
$val = $fetcharr['productscode'];
$label = $fetcharr['productsname'];
echo "<option value=\"$val\">$label</option> \n" ;
}
} else if ($data=='productssubcode') {
echo "<select name='productsubscode'\">\n";
$sql="select * from subproducts where productscode = '$val'";
$result = mysql_query($sql);
echo "<option value='0'>-เลือกสินค้าย่อย-</option>\n";
echo "<option value='0'>--------------------</option>\n";
while($fetcharr = mysql_fetch_array($result)) {
$val = $fetcharr['productsubscode'];
$label = $fetcharr['productsubname'];
echo "<option value=\"$val\">$label</option> \n" ;
}
}
echo "</select>\n";
?>
Tag : - - - -
Date :
2009-10-07 19:39:34
By :
gigza
View :
1387
Reply :
52
ดันๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ
Date :
2009-10-07 20:42:26
By :
gigza
รอๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ รอแล้วรอแล้วรอไม่สิ้น
Date :
2009-10-07 20:42:55
By :
gigza
ลองปิด header ส่วนนี้ดูครับ
Code (PHP)
//header("content-type: application/x-javascript; charset=tis-620");
Date :
2009-10-07 20:46:31
By :
xbeginner01
มาแย้ววว
รอร๊อ รอ
กะจะไม่ให้พี่ อาบข้าวกินน้ำก่อนเลยรึไงจ๊ะ
Date :
2009-10-07 20:59:25
By :
NanoThoro
เอ๊ๆๆๆ พี่จำได้ว่าจะหาให้นี่นา ไม่ได้บอกว่าจะแก้ไขให้นะ อิอิอิ
Date :
2009-10-07 21:02:46
By :
NanoThoro
Code (PHP)
1. Your PHP script receives a request with a manufacturerID.
<?php
if (is_numeric(@$_GET['manufacturerID'])) {
// create an XML document
$doc = new DOMDocument ('1.0', 'ISO-8859-1');
// create root-element
$root = $doc->createElement('root');
$root = $doc->appendChild($root);
$doc->preserveWhiteSpace = true;
// query the database
$rs = mysql_query("SELECT id, model FROM models WHERE manufacturerID = $_GET[manufacturerID]");
// now create an option element for each record
while ($row = mysql_fetch_assoc($rs)) {
// attach a new option to the root element
$opt = $root->appendChild($doc->createElement('option'));
// create id element, attach it to the option element
$elId = $opt->appendChild($doc->createElement('id'));
// add textnode to it, containing the model's id
$elId->appendChild($doc->createTextNode($row['id']));
// do the same for the model
$elModel = $opt->appendChild($doc->createElement('model'));
$elModel->appendChild($doc->createCDATASection(rawurlencode($row['model'])));
}
$result = $doc->saveXML();
header('Content-type: application/xml; charset=utf-8');
echo $result;
exit;
}
?>
This should return an xml document that looks more or less like this:
<?xml version="1.0"?>
<root>
<option>
<id>25</id>
<model><![CDATA[Kadett]]></model>
</option>
<option>
<id>28</id>
<model><![CDATA[Astra]]></model>
</option>
</root>
2. In your JavaScript that sends the XmlHttpRequest, you've set a method called buildSelectBox as the onreadystatechange handler. The name of your request object is myreq.
function buildSelectBox() {
if (myreq.readyState == 4) {
// create a select element
var sbox = document.createElement('select');
sbox.name = 'models';
// give it an onchange handler
sbox.onchange = 'getAvailableYears';
// now add the options
var opts = myreq.responseXML.getElementsByTagName('option');
for (var i = 0; i < opts.length; i++) {
var op = new Option(
unescape(opts[i].getElementsByTagName('model').item(0).firstChild.data),
unescape(opts[i].getElementsByTagName('id').item(0).firstChild.data),
false, false);
sbox.options[sbox.length] = op;
}
// add the select box to an existing element on the page
document.getElementById('models').appendChild(sbox);
}
}
Date :
2009-10-07 21:03:34
By :
NanoThoro
โหพี่นาโน ไม่เข้าใจ code อ่ะค่ะ มีตัวอย่างมั้ยคะ ที่เป็นแสดงผลมาเลย และมันสามารถเอาไปประยุกต์กับ 2 ตารางได้มั้ยคะ
Date :
2009-10-07 21:06:02
By :
gigza
งั้นเดี๋ยวพี่พิมพ์ให้นะ
Date :
2009-10-07 21:13:47
By :
NanoThoro
Date :
2009-10-07 21:22:28
By :
somparn
Date :
2009-10-07 21:31:16
By :
onizike
Date :
2009-10-07 21:33:36
By :
NanoThoro
Code (PHP)
<?php
echo "ทำไมเงียบจัง มีใครอยู่บ้างมั้ยคะ";
?>
Date :
2009-10-07 21:34:15
By :
gigza
มีคนมาแอบมอง
ทามรายกันแว้ๆๆๆๆ
อิอิอิอิ
คนเขาจะจีบกัน ซะงั้น
Date :
2009-10-07 21:34:23
By :
NanoThoro
Code (PHP)
<html>
<head><title> test ๆๆๆๆ</title>
<script language="javascript">
function menu_select(targ, selObject, restore)
{
eval(targ + ".location='" selObject.options[selObject.selectedIndex].values + "'");
if (restore) selObject.selectedIndex = 0;
}
function validate()
{
if (document.form1.cat2.value == "")
{
alert("กรุณาเลือกรายการย่อยด้วยยยยยย เด้อ...");
document.form1.cat2.focus();
return false;
} else
{
return true;
}
}
</script>
</head>
<body>
<form name="form1" method="post" action="?" onsubmit="return validate()">
<h2>ฮัลโหล Test ๆๆๆ</h2>
<?
//คำสั่งสำหรับติดต่อดาต้าเบส นะจ๊ะ
//ติดต่อเอาเอง นะจ๊ะ
//เก็บรายการที่เลือกจากเมนูแรกรายการแรกสุด
$cat1 = $_REQUEST['cat1'];
$sql = "SELECT * FROM tb_main_menu WHERE cat_val = '$cat1'"; //cat_val คีย์หลักของตารางเมนูหลัก
$result = mysql_query($sql);
if (mysql_fetch_array($result))
{
$current = mysql_result($result, 0, 'cat_label'); //cat_label คือชื่อรายการเมนู น๊าคร๊าบบบบ
} else
{
$current = "เลือก กรุณา เลือก";
}
//แสดงเมนูหลัก
$sql = "SELECT * FROM tb_main_menu ORDER BY cat_order"; //cat_order คือลำดับการแสดงรายการเมนูหลัก จริงก็อาจจะเรียงจาก cat_val ก็ได้ หรือจะเป็น cat_label ก็ได้ ก็ไม่จำเป็นต้องมีฟิวด์นี้ในตาราง
$result = mysql_query($sql);
?>
รายการหลัก
<select name="cat1" onchange="menu_select('parent', this, 0)">
<?
echo "<option value='$cat1'>$current</option> \n";
echo "<option value='$PHP_SELF?cat1=$cat1'>===============</option> \n";
while ($fetcharr = mysql_fetch_array($result))
{
$val = $fetcharr['cat_val'];
$label = $fetcharr['cat_label'];
echo "<option value='$PHP_SELF?cat1=$val'>$label</option> \n";
}
?>
</select>
รายการย่อยแล้วย่อยอีก
<select name="cat2">
//แสดงรายการเมนูย่อยๆๆๆๆ
<?
$sql = "SELECT * FROM tb_sub_menu WHERE cat_val = '$cat1'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 0)
{
echo "<option>กรุณาเลือกรายการหลักซะก่อนเด้อ</option> \n";
} else
{
echo "<option>โปรดเลือกฉันๆๆๆๆ<option> \n";
}
while ($fetcharr = mysql_fetch_array($result))
{
$val = $fetcharr['s_cat_val'];
$label = $fetcharr['s_cat_label'];
echo "<option value='$val'>$label</option> \n";
}
?>
</select>
<br>
text field อื่นๆ ถ้าอยากจะมี
ปุ่มมิตซับก็ขาดไม่ได้
</form>
</body>
</html>
Date :
2009-10-07 21:47:57
By :
NanoThoro
ถ้าต้องการโครงสร้างข้อมูลตัวอย่างด้วยก็บอกนะ แต่คงไม่จำเป็นมั้ง เพราะว่าเอาข้อมูลของเราเข้าไปได้เลย
Date :
2009-10-07 21:49:21
By :
NanoThoro
ใช้ <font> ครอบ <select> TT ผมคิดไม่ถึงจริงๆ
แล้ว บราวเซอร์มัน error ป่าวคับ
Date :
2009-10-07 21:52:07
By :
pjgunner
ไม่เข้าใจอะเพ่เอี๋ยว อธิบายหน่อยจิ พูดให้เคลีย อย่าลืมว่าคนแก่ เข้าใจอะไรยาก อธิบายหน่อย จาได้ประปรับความรู้ อิอิอิ
พอดีว่าสมองมีพื้นที่ว่างอีกเยอะ
Date :
2009-10-07 21:57:37
By :
NanoThoro
แหมๆ พี่เอี่ยวไปแซวน้องเค้า
หมองไม่มีไรตอบ มาเป็นกำลังใจครับ
Date :
2009-10-07 21:59:38
By :
peterxp
echo "หมวดสินค้า : <font id=productscode><select>\n";
04.
echo "<option value='0'>--------------------</option> \n" ;
05.
echo "</select></font>\n";
นี่เหรอ เพ่เอี่ยว
ผมว่าไม่น๊าาา
Date :
2009-10-07 21:59:55
By :
NanoThoro
ชูปีเตอร์หน้าตาคล้ายกะลูกศิษย์ผมในอดีตเลย เหมือนมากๆ ไว้ผมทรงเดียวกันซะด้วยดิ
Date :
2009-10-07 22:01:23
By :
NanoThoro
อิอิ พี่นาโน ไม่ค่อยงงหรอกกับ code แต่ไม่รู้ว่า จะเอาของตัวเองไปไว้ตรงไหน อย่างของน้องอ่ะ งานจริงเลยนะคะ
ชื่อ database ชื่อ computerservice
มี 2 ตาราง คือ products (หมวดสินค้า) ก็จะมี productscode (รหัสหมวดสินค้า) productsname (ชื่อหมวดสินค้า)
โดยที่เอา productscode ของ ตาราง products ไปตรวจสอบ productscode ของตาราง subproducts เพื่อให้แสดง productssubcode และ productssubname ใน listbox ที่สองอ่ะค่ะ
เข้าใจหรือเปล่าน๊า แต่พี่นาโนเก่งอยู่แล้ว เดี๋ยวให้ขนมจีบ อิอิ
Date :
2009-10-07 22:03:36
By :
gigza
-o,0u[g]pgsiv
x]. z,w,jg8jvp.=h <font> c[[ouh,kdjvo gmj0ib'q
Date :
2009-10-07 22:07:46
By :
pjgunner
แกะภาษาต่างด้าวเพ่เอี่ยวก่อนนะ
Date :
2009-10-07 22:09:26
By :
NanoThoro
ขนมจีบเลยเหรอ
บันทัดแรก ของเพ่เอี่ยว อิอิอิ
Date :
2009-10-07 22:10:54
By :
NanoThoro
55555555++++ ถ้ายังคิดไม่ออกกัน (คิดให้ออกนะคะ ไม่ได้บังคับ เค้าเรียกว่าขู่เข็ญ) ก็ +1 ไปพลางๆ ก่อนก็ได้นะคะ
Date :
2009-10-07 22:12:23
By :
gigza
x]. z,w,jg8jvp.=h <font> c[[ouh,kdjvo gmj0ib'q
ปล.ผมไม่ค่อยใช้ <font> แบบนี้มาก่อน เท่จริงๆ
บันทัดที่ 2 จบ
อิอิอิ เท่ตรงไหนหนอ
มันใช้ได้ แต่ไม่มีผลต่อกล่องข้อความ หรืออฟเจ็กฟอร์มอะครับ
Date :
2009-10-07 22:15:54
By :
NanoThoro
Date :
2009-10-07 22:19:34
By :
somparn
น่าจะได้ออกมาเป็นแบบนี้นะ
Code (PHP)
<html>
<head><title> test ๆๆๆๆ</title>
<script language="javascript">
function menu_select(targ, selObject, restore)
{
eval(targ + ".location='" selObject.options[selObject.selectedIndex].values + "'");
if (restore) selObject.selectedIndex = 0;
}
function validate()
{
if (document.form1.cat2.value == "")
{
alert("กรุณาเลือกรายการย่อยด้วยยยยยย เด้อ...");
document.form1.cat2.focus();
return false;
} else
{
return true;
}
}
</script>
</head>
<body>
<form name="form1" method="post" action="?" onsubmit="return validate()">
<h2>ฮัลโหล Test ๆๆๆ</h2>
<?
//คำสั่งสำหรับติดต่อดาต้าเบส นะจ๊ะ
//ติดต่อเอาเอง นะจ๊ะ
//ค่ากำหนดของ ฐานข้อมูล
$host="localhost";
$username="";
$password="";
$dbname="computerservice";
//เชื่อมต่อกับ MySQL
$connect= mysql_connect($host, $username, $password) or die("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
$db=mysql_select_db($dbname) or die("ฐานข้อมูลไม่ถูกต้อง");
//เก็บรายการที่เลือกจากเมนูแรกรายการแรกสุด
$cat1 = $_REQUEST['cat1'];
$sql = "SELECT * FROM products WHERE productscode = '$cat1'"; //cat_val คีย์หลักของตารางเมนูหลัก
$result = mysql_query($sql);
if (mysql_fetch_array($result))
{
$current = mysql_result($result, 0, 'productsname'); //cat_label คือชื่อรายการเมนู น๊าคร๊าบบบบ
} else
{
$current = "เลือก กรุณา เลือก";
}
//แสดงเมนูหลัก
$sql = "SELECT * FROM products ORDER BY id"; //cat_order คือลำดับการแสดงรายการเมนูหลัก จริงก็อาจจะเรียงจาก cat_val ก็ได้ หรือจะเป็น cat_label ก็ได้ ก็ไม่จำเป็นต้องมีฟิวด์นี้ในตาราง
$result = mysql_query($sql);
?>
รายการหลัก
<select name="cat1" onchange="menu_select('parent', this, 0)">
<?
echo "<option value='$cat1'>$current</option> \n";
echo "<option value='$PHP_SELF?cat1=$cat1'>===============</option> \n";
while ($fetcharr = mysql_fetch_array($result))
{
$val = $fetcharr['productscode'];
$label = $fetcharr['productsname'];
echo "<option value='$PHP_SELF?cat1=$val'>$label</option> \n";
}
?>
</select>
รายการย่อยแล้วย่อยอีก
<select name="cat2">
//แสดงรายการเมนูย่อยๆๆๆๆ
<?
$sql = "SELECT * FROM subproducts WHERE productscode = '$cat1'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 0)
{
echo "<option>กรุณาเลือกรายการหลักซะก่อนเด้อ</option> \n";
} else
{
echo "<option>โปรดเลือกฉันๆๆๆๆ<option> \n";
}
while ($fetcharr = mysql_fetch_array($result))
{
$val = $fetcharr['productsubscode'];
$label = $fetcharr['productsubname'];
echo "<option value='$val'>$label</option> \n";
}
?>
</select>
<br>
text field อื่นๆ ถ้าอยากจะมี
ปุ่มมิตซับก็ขาดไม่ได้
</form>
</body>
</html>
Date :
2009-10-07 22:26:42
By :
NanoThoro
เพ่สมภาณแจกยิ้มอีกและ
นี่มันของผมน๊าาาาา
Date :
2009-10-07 22:28:33
By :
NanoThoro
Yeser.
I have deprecate <font> for a long time.
I'm using <span> for this purpose.
Date :
2009-10-07 22:30:46
By :
pjgunner
ดีนะไม่เล่นมุกปุ่ม มิตซุยคอมโพแนนต์ (โรงงานข้างบ้าน) อิอิอิ กลัวว่าไม่รู้จักเลยเล่นสั้นๆ
Date :
2009-10-07 22:31:01
By :
NanoThoro
พี่ๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ รายการหมวดสินค้าขึ้นครบค่ะ แต่รายการย่อยไม่ขึ้น ข้างล้างมุมซ้ายมีเครื่องหมายตกใจ
line 27
char 1
Error Object expected
Code : 0
อ่ะค่ะ
ท่าทางมันไม่ส่งค่ามาให้ subproducts มาตรวจสอบอ่ะค่ะ (มั้งนะ)
Date :
2009-10-07 22:32:33
By :
gigza
มาปกิจมาเลยนะเพ่เอี่ยว เมื่อคี้ลืมเปลี่ยนคีย์อะดิ ฮาๆๆๆๆ
Date :
2009-10-07 22:32:50
By :
NanoThoro
นอนดีกว่า วันนี้สมองไม่สั่งการ ไม่มีอะไรมากระตุ่นเลย(น้ำยาเร่งราก)คิดถึงเพ่เสก หุหุหุหุ
Date :
2009-10-07 22:36:21
By :
somparn
บีทาเก้นสักขวดไหม
ของโปรดผมเลย
Date :
2009-10-07 22:43:43
By :
NanoThoro
พี่นาโน อย่าเพิ่งเมาสิคะ อิอิ ช่วยที เดี๋ยวให้เป็นลังเลย 555+
แงๆๆๆๆ ไม่รักกันจริง และก็ทิ้งกันไป แล้วลูกเราจะอยู่กะใคร อิอิ 555++
Date :
2009-10-07 22:48:37
By :
gigza
เย้ย
พี่ไม่ดื่ม สุราเมรัยจ้าาา
จะเมาได้ไง
Date :
2009-10-07 23:01:42
By :
NanoThoro
พี่ดื่ม บีทาเก้น เป็นอย่างเดียว
อิอิอิ
(ดื่มอย่างอื่นสงสัยโดนไล่ออก)
Date :
2009-10-07 23:04:27
By :
NanoThoro
ติดอะไรอีเหรอ
Date :
2009-10-07 23:05:57
By :
NanoThoro
แอดมาเลยดีกว่า
Date :
2009-10-07 23:06:32
By :
NanoThoro
มันแสดงหมวดสินค้าหลักได้อย่างเดียว ตาราง products อ่ะค่ะ แต่เมื่อเลือกในนี้แล้ว ไม่แสดงของ subproducts เลย ค่ะ แอด msn คุยได้นะคะ [email protected]
Date :
2009-10-07 23:07:32
By :
gigza
5555 ห้องเรียนห้องนี้เอาไม่จบต้องมีต่อนอกห้องแหะ
Date :
2009-10-07 23:12:25
By :
somparn
Date :
2009-10-07 23:15:30
By :
plakrim
แหม!! พี่ phpbasic อิจฉาคนจีบกันล่ะสิ มาๆๆ แอดมาช่วย เอ๊ยยย มาคุยกัน พี่ PlaKriM คะ สวัสดิเจ้าค่ะ ไม่ค่อยเห็นตอบเลย ช่วยน้อง ๆ หน่อยสิคะ
Date :
2009-10-07 23:19:56
By :
gigza
แค่นี้ไม่เกินมือนาโนหรอก อิอิ จัดไปนาโน อย่าให้เสีย
Date :
2009-10-07 23:24:05
By :
plakrim
เดี๋ยวพี่นาโนของน้องจะ บอบช้ำก่อนเข้านอนแหงเลย ช่วยๆๆๆๆทีนะคะ อีกแรง
eval(targ + ".location='" selObject.options[selObject.selectedIndex].values + "'");
มันฟ้องตรงนี้ต้องเปลี่ยนไงดีคะ
ลองดู สู้ๆๆๆๆๆ
Date :
2009-10-07 23:29:54
By :
gigza
ได้แล้วค่ะ พี่นาโนสุดยอดมาก นอนหลับแล้ววววว เย้ๆๆๆๆๆๆๆ
Date :
2009-10-08 00:12:13
By :
gigza
ประจานทิ้งท้ายก่อนเข้านอนด้วย คนเรา
ฝันดีเพ่สมภาณ
ฝันดีน้องเอ๋
และทุกๆ ท่าน หลับฝันดีครับๆๆๆ
Date :
2009-10-08 00:19:45
By :
NanoThoro
ผู้สังเกตการณ์
Date :
2009-10-08 08:35:14
By :
onizike
ท่าน นาโน งานเข้าอีกแล้งไง อิอิอิ
Date :
2009-10-08 09:23:19
By :
nerobenz
Load balance : Server 01