|
|
|
รบกวนขอความช่วยเหลือเรื่อง Ajax+Php รันใน Appserve ได้ แต่รันใน XAMPP ไม่ผ่าน |
|
|
|
|
|
|
|
ไฟล์ Menu41.php
Code (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=utf-8" />
<title>Untitled Document</title>
<script>
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function list_jobsub(id) {
var obj = document.getElementById("subjobcatalog");
var obj_default = '- Choose -';
//alert(id);
if(id ==""){
while(obj.childNodes.length>0){obj.removeChild(obj.childNodes[0]);}
obj[0] = new Option(obj_default,'');
}else{
var url = "get_subrootcause.php?id=" + id;
//alert(url);
createXMLHttpRequest();
xmlHttp.onreadystatechange = function(){handleStateChange(xmlHttp);}
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
function handleStateChange(xmlHttp) {
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(",");
var str=shop_arr[0]+","+shop_arr[1];
//alert(str);
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,'');
}
}
}
}
}
}
function list_jobsub2(id) {
var obj = document.getElementById("subjobcatalog2");
var obj_default = '- Choose -';
//alert(id);
if(id ==""){
while(obj.childNodes.length>0){obj.removeChild(obj.childNodes[0]);}
obj[0] = new Option(obj_default,'');
}else{
var url = "get_subrootcause1.php?id=" + id;
//alert(url);
createXMLHttpRequest();
xmlHttp.onreadystatechange = function(){handleStateChange(xmlHttp);}
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
function handleStateChange(xmlHttp) {
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(",");
var str=shop_arr[0]+","+shop_arr[1];
//alert(str);
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>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<select name="jobcatalog2" id="jobcatalog" onChange="list_jobsub(this.value);" style="width:400px">
<option value="">- Choose -</option>
<?php
$host="localhost"; // Host
$user="root"; // user
$password="root"; //ʼҹҹ
$dbname="hseq";
$connection=mysql_connect($host,$user,$password) or die("eror");
mysql_select_db($dbname) or die("error");
$sql="select * from jobfactors1 order by id";
$dbquery=mysql_db_query($dbname,$sql);
while($result=mysql_fetch_array($dbquery)){
?>
<option value="<?php echo $result[id];?>"><?php echo $result[name];?></option>
<?php
}
?>
</select>
<br />
<br />
<select name="subjobcatalog" id="subjobcatalog" onChange="list_jobsub2(this.value);" style="width:400px">
<option value="">- Choose -</option>
</select>
<br />
<br />
<select name="subjobcatalog2" id="subjobcatalog2" style="width:400px">
<option value="">- Choose -</option>
</select>
</form>
<br />
</html>
ไฟล์ get_subrootcause.php
Code (PHP)
<?php
header("Content-Type: text/plain; charset=TIS-620");
$host="localhost";
$user="root";
$password="root";
$dbname="hseq";
$connection=mysql_connect($host,$user,$password) or die("เชื่อมต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("ไม่สามารถเลือกฐานข้อมูลได้");
$sql="select distinct Type,catid from jobfactors where id = '$id' ";
$dbquery = mysql_db_query($dbname, $sql);
echo "- Choose -, /";
while ($result = mysql_fetch_array($dbquery)){
echo"$result[Type],$result[catid]/";
}
mysql_close();
?>
ไฟล์ get_subrootcause1.php
Code (PHP)
<?php
$host="localhost";
$user="root";
$password="root";
$dbname="hseq";
$connection=mysql_connect($host,$user,$password) or die("เชื่อมต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("ไม่สามารถเลือกฐานข้อมูลได้");
$sql="select Item,sub_id from jobfactors where catid = '$id' ";
$dbquery = mysql_db_query($dbname, $sql);
echo "- Choose -, /";
while ($result = mysql_fetch_array($dbquery)){
echo"$result[Item],$result[sub_id]/";
}
mysql_close();
?>
ตอนนี้ผมรันในเครื่องผมเองได้ แต่พออัพขึ้นเซิฟเวอร์แล้ว มันรันได้ไม่ครบ ผมเลยสงสัยว่าผมต้องแก้ไข Code เพิ่มเติมตรงไหนหรือป่าวครับ รบกวนหน่อยนะครับ
ขอบคุณครับ
Tag : PHP, MySQL, Ajax
|
ประวัติการแก้ไข 2010-10-13 20:32:56
|
|
|
|
|
Date :
2010-10-13 13:28:21 |
By :
tom1130 |
View :
1688 |
Reply :
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่อผมลืมบอกนะครับ ว่าผมใช้รันใน Firefox
|
|
|
|
|
Date :
2010-10-13 13:29:38 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจะเป็นตรง connection ของ php + mysql ครับ
|
|
|
|
|
Date :
2010-10-13 16:15:23 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมตรวจสอบหมดแล้วครับ โค๊คนี้มันเป็น Listmenu แปรผันตามกัน มันขึ้นเฉพาะอันแรก แต่อันที่สองที่จะผันตามอันแรกมันไม่ยอมขึ้น ผมก็เลยงงน่ะครับ
แต่ถ้ารันใน Localhost เครื่องเราเอง รันได้หมด ไม่มีปัญหาเลย แต่พอรันบน XAMPP ที่เครื่องเซิฟเวอร์ มันกลับไม่ขึ้น
ผมลองแก้หลายๆอย่างแล้วก้อยังไม่ขึ้น ขอคำแนะนำด้วยครับ
|
|
|
|
|
Date :
2010-10-13 16:28:58 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ๆ ครับ ไม่ทราบว่า ตรงคำสั่ง onChange="list_jobsub2(this.value); ผมเขียนถูกหลักมั้ยครับ
|
|
|
|
|
Date :
2010-10-13 16:35:31 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xampp tag ต้องเป็น <?php เท่านั้นครับ ผมเคยแล้ว เหอ ๆ และใช้ <?= ไม่ได้ด้วย ต้อง <?php echo
|
|
|
|
|
Date :
2010-10-13 16:38:31 |
By :
kalamell |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับ ตอนนี้ผมเปลี่ยนหมดแล้ว ก้อยังไม่ได้เหมือนเดิม งงจริงๆๆ
ขอบคุณนะครับที่เข้ามาตอบ ขอบคุณมากๆๆ
|
|
|
|
|
Date :
2010-10-13 16:41:01 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ๆช่วยผมหน่อยคร๊าฟ ผมคิดไม่ออกแล้ว
|
|
|
|
|
Date :
2010-10-13 20:47:12 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองใช้การ Debug ดูทีล่ะ Step ครับ ว่าตรงไหนมันไม่เป็นอย่างที่เราต้องการครับ คุณเองน่าจะเป็นคนที่เข้าใจปัญหา และแก้ไขปัญหาได้ดีที่สุดครับ
Cheer!!
|
|
|
|
|
Date :
2010-10-13 21:14:56 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับพี่ ผมลองดีบักแล้ว ถ้ารันผ่านเซิฟเวอร์ มันฟ้องจากการ debug ว่า obj is null ผมเลยสงสัยว่าตรงคำสั่ง onchange ผมเขียนถูกต้องหรือป่าว แต่แก้อย่างไรรันผ่าน localhost ก้ได้เสมอ
งงมากมายเลยคร๊าฟฟ
|
|
|
|
|
Date :
2010-10-13 21:45:01 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
debug ง่ายๆ ด้วยการเปิดด้วย firefox แล้ว ctrl + shift + j แล้วจะเห็นว่ามัน error ตรงไหน หรือไม่ก็ใช้ firebug
|
|
|
|
|
Date :
2010-10-13 21:50:03 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองตรวจสอบก่อนครับว่า obj ตัวไหนที่เป็นค่า null ก็ตามไปแก้ไขตัวนั้นน่ะครับ
|
|
|
|
|
Date :
2010-10-13 21:50:59 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับผมใช้ Firefox แล้วมันฟ้องอย่างที่บอกน่ะครับ
|
|
|
|
|
Date :
2010-10-13 21:51:48 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
obj จากการที่ onChange="list_jobsub2(this.value); ตัวนี้ทำการเก็บน่ะครับ ผมก็เลยสงสัยว่าเขียนผิดไวนากรณ์ไปหรือป่าว แนะนำด้วยครับ
ขอบคุณสำหรับทุกคำตอบครับ
|
|
|
|
|
Date :
2010-10-13 21:53:32 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองศึกษาเรื่อง ไฟล์ .htaccess ใน Apache ดูนะครับ..
อาจช่วยแก้ปัญหานี้ได้ดีทีเดียวครับ..
|
|
|
|
|
Date :
2010-10-14 00:58:35 |
By :
sakchaina |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บรรทัด 017 กับ 058 ใช้แบบนี้ดูได้หรือไม่ครับ
function list_jobsub(id)
{
if(id==null)
{
id=ค่าเริ่มต้นอะไรก็ว่า
}
function list_jobsub2(id)
{
if(id==null)
{
id=ค่าเริ่มต้นอะไรก็ว่า
}
ลองดูครับ
ปล. แต่ถ้าลองไปใช้ JQuery รับรองคุณจะพบกับความสุข ความสบายขึ้นเยอะเลยครับ ฮ่า ๆ ๆ ๆ ๆ ๆ
|
ประวัติการแก้ไข 2010-10-14 09:26:13 2010-10-14 09:45:20
|
|
|
|
Date :
2010-10-14 09:24:46 |
By :
kalamell |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับตอนนี้ผมลอง alert ค่าที่ส่่งไปให้ ajax ทำงานแล้วนะครับ ปรากฎว่ามีการส่งค่าตรงตามจริง แต่พอส่งไปค่าไปที่ไฟล์ get_subrootcause.php เพื่อให้ทำงานต่อ แต่ไฟล์นี้ไม่มีการตอบสนองใดๆกลับมาเลย ผมเลยไม่มั่นใจว่าผมเขียนถูกต้องหรือป่าวครับ รบกวนพี่ๆทุกท่านช่วยดูให้หน่อยนะครับ
|
|
|
|
|
Date :
2010-10-14 15:24:04 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองรับ id ด้วย $_REQUEST ดูนะครับ
|
|
|
|
|
Date :
2010-10-14 15:32:43 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องขอขอบคุณพวกพี่ๆทุกๆคนมากเลยครับ
ตอนนี้ผมทำได้แล้วครับ มันต้องมีไฟล์เพิ่มเข้ามาอีกไฟล์หนึ่งครับท ที่ใช้ตรวจสอบ ajax framwork
|
|
|
|
|
Date :
2010-10-18 09:07:33 |
By :
tom1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วมันต้องมีไฟล์ที่ใช้ตรวจสอบ ajax framwork ที่ว่ามันไฟล์อะไรล่ะครับ บางคนยังงงงงงอยู่อ่ะ
|
|
|
|
|
Date :
2010-11-29 14:05:11 |
By :
wad |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เช็ดแล้วทิ้งง่ะ..
ได้คำตอบแล้วไม่เฉลย อุตส่าห์ตามอ่านตั้งนาน..เฮ่อ..
|
|
|
|
|
Date :
2014-09-11 22:56:23 |
By :
sootipun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|