|
|
|
รบกวนขอคำแนะนำ เรื่อง การเรียกแก้ไข listmenu ที่ใช้ ajax ค่ะ |
|
|
|
|
|
|
|
รบกวนขอคำแนะนำหน่อยค่ะ กรณีที่เรียกข้อมูลที่ต้องการแก้ไขข้อมูลขึ้นมา เพื่อที่จะทำการแก้ไข โดยที่ listmenu ที่ใช้ ajax ก็ดึงค่าขึ้นมาโชว์ แต่ listmenu ตัวที่ 2 จะต้องโชวืค่าที่เราเรียกขึ้นมาก และถ้าคลิกจะมีเฉพาะข้อมูลที่เกี่ยวข้องกับตัวแรก อยากทราบว่าต้องทำยังไงค่ะ
menu.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>
<script>
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function list_namesub(id) {
var obj = document.getElementById("subcatalog");
var obj_default = '- Choose -';
if(id ==""){
while(obj.childNodes.length>0){obj.removeChild(obj.childNodes[0]);}
obj[0] = new Option(obj_default,'');}else{
var url = "get_subname.php?id=" + id;
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
var results = xmlHttp.responseText;
while(obj.childNodes.length>0){obj.removeChild(obj.childNodes[0]);}
arr_list=results.split("/");
if(arr_list.length-1!=0){
for (var i=0; i < eval(arr_list.length-1); i++) {
shop_arr=arr_list[i].split(",");
obj.options[i] = new Option(shop_arr[0],shop_arr[1]);
}}else{
while(obj.childNodes.length>0){obj.removeChild(obj.childNodes[0]);}
obj[0] = new Option(obj_default,'');
}
}
}}
}}
</script>
<body>
<form id="form1" name="form1" method="post" action="">
<select name="catalog" id="catalog" onChange="list_namesub(this.value);" style="width:200px" >
<option value="">ไม่มี Album</option>
<?
$host="localhost"; //ชื่อ Host
$user="root"; //ชื่อ user
$password="root"; //รหัสผ่านฐานข้อมูล
$dbname="listmenu";
$connection=mysql_connect($host,$user,$password) or die("เชื่อมต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("ไม่สามารถเลือกฐานข้อมูลได้");
$sql="select * from tb_catalog order by cat_id ASC";
$dbquery=mysql_db_query($dbname,$sql);
while($result=mysql_fetch_array($dbquery)){
?>
<option value="<?=$result[cat_id];?>"><?=$result[cat_name];?></option>
<?
}
?>
</select>
<br />
<br />
<select name="subcatalog" id="subcatalog" style="width:200px">
<option value="">- Choose -</option>
</select>
</form>
</body>
</html>
get_subname.php
<?php
//header("Content-Type: text/plain; charset=TIS-620");
$host="localhost";
$user="root";
$password="root";
$dbname="listmenu";
$connection=mysql_connect($host,$user,$password) or die("เชื่อมต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("ไม่สามารถเลือกฐานข้อมูลได้");
$sql="select * from tb_subcatalog where cat_id = '$id' ";
$dbquery = mysql_db_query($dbname, $sql);
echo "- Choose -, /";
while ($result = mysql_fetch_array($dbquery)){
echo"$result[sub_name],$result[sub_id]/";
}
mysql_close($connection);
?>
Tag : - - - -
|
|
|
|
|
|
Date :
2010-02-05 17:40:35 |
By :
เปิ้ล |
View :
1217 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากทราบเหมือนกันค่ะ กรณีโหมดแก้ไขข้อมูล ถ้าเราดึงข้อมูลมาโชว์บน แล้วมี list 2 ตัว แต่ listตัวที่ 2 จะมีค่าเปลี่ยนเมื่อ list ตัวที่ 1 เปลี่ยน แต่กรณีโหลดข้อมูลมาแก้ไขครั้งแรก จะต้องเขียน โค๊ดอย่างไรค่ะ ต้องเพิ่มจาก โค๊ดที่นำมาให้ดูอย่างไร เพราะกรณีเพิ่มข้อมูลใช้โค๊ดที่นำมาให้ดูไม่ติดปัญหาอะไร แต่กรณีดึงมาแก้ไขเนี้ยสิค่ะ งงค่ะ รบกวนช่วยหน่อยนะค่ะ
|
|
|
|
|
Date :
2010-02-05 17:48:48 |
By :
กิฟท์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้วิธีนี้ก็ได้ครับ ( อาจแก้ปัญหาได้บาง )
1. query เอาส่วนของ list แรกมาทั้งหมดก่อน แล้วเช็ค seleted ที่ตรงกับ ฐานข้อมูลที่เก้บไว้ก่อนหน้านี้
2. query ค่าของ list ที่ 2 ที่เก้บใน table มาแสดงใน list dropdown เลยครับ
ไม่ต้องกังวลกับ code ด้านบน ยังทำงานได้ตามปกติครับ
เมื่อ user หรือ ผู้ดูแลต้องการ ปรับปรุงข้อมูลก็ได้ตามปกติครับ
*** คิดสะว่ามันเป็น List menu ธรรมดา อย่าไป สับสนกับส่วนของ ajax ครับ
|
|
|
|
|
Date :
2010-04-28 23:41:21 |
By :
krabongped |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|