javascript in ajax showAllmarker(map,News_ID[i],News_Type[i],Picture_1[i]]); }
ทำไมผม Alert(obj.responseText); มันก็มีข้อมูลอย่างที่ต้องการ
แต่ทำไมผม ใช้ test.innerHTML = obj.responseText แล้วมันไม่เกิดอะไรขึ้นอ่ะครับ
จริงๆCode ด้านบน ถ้าผมนำไปใช้ในหน้าhtmlเลย ก็ใช้งานได้ปกติ
แต่ผมอยากใช้ในรูปแบบAjax เพื่อประยุกต์แบบต่างๆน่ะครับ
Date :
2009-02-25 11:06:05
By :
nutkit
มันทำได้ด้วยหรอครับ script ฝังใน script เนี้ย ผมว่า echo ออกมาแล้วมีเครื่องหมายอะไรคั่นไว้ก็ได้ แล้วมา split เอา ได้แน่นอน
Date :
2009-02-25 12:46:17
By :
plakrim
คุณเข้าใจอะไรผิดอ่ะ ป่าว ถ้า alert แล้วขึ้น ก็หมายความว่า มันทำงานได้ถูกต้องแล้วนะครับ
ดูโค้ดแล้วตาลาย(คุณน่าจะใช้ ' กะ " สลับกัน จะอ่านโค้ดง่ายกว่านะครับ)
แล้ว test นั้นคืออะไร ลองดูดีๆว่าผิดพลาดไปตรงไหนมั่ง
Date :
2009-02-25 13:24:10
By :
pjgunner
คือถ้าผมนำเอาโค้ดทั้งหมดนี้ไปวางไว้ที่หน้าHTML มันก็จะได้เลยน่ะครับ
แต่ว่าผมอยากใช้ในรูปแบบajax โดยที่ผมสร้าง <div id="test"> </div>
ไว้เพื่อให้รับค่าจาก obj.responseText; แต่ว่ามันไม่เกิดอะไรขึ้น
ผมเลยลองalert (obj.responseText) ดู ปรากฤว่าก็ได้ค่าตามที่ผมต้องการ
ช่วยทีครับ
Date :
2009-02-25 13:53:35
By :
nutkit
ขอดูโค้ด ตอนที่ innerHTML หน่อยค่ะ ถ้าไม่เห็นโค้ดก็ไม่รู้ช่วยไงอ่ะ
Date :
2009-02-25 14:02:34
By :
Jewels
<? header("Content-Type: text/html; charset=UTF-8");
$objConnect = mysql_connect("xxx","xxx","xxx") or die("Error Connect to Database");
$objDB = mysql_select_db("xxx");
$strSQL = "SELECT * FROM news WHERE News_Type = 'Crime'";
$strSQL .=" order by News_ID DESC Limit 0,10";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
$tmpid = array();
$tmppic = array();
$tmptype = array();
while($objResult = mysql_fetch_array($objQuery))
{
array_push($tmpid, $objResult["News_ID"]);
array_push($tmppic , $objResult["Picture_1"]);
array_push($tmptype , $objResult["News_Type"]);
}
echo implode(",", $tmpid) . ":::" . implode(",", $tmppic) . ":::" . implode(",", $tmptype);
?>
ส่วน script
<script>
var result = ajax.responseText;
var tmp = result.split(":::");
alert(tmp[0]);
alert(tmp[1]);
alert(tmp[2]);
</script>
ลองดูครับผมเขียนสดไม่ได้เทส แต่น่าจะรันได้นะ
Date :
2009-02-25 14:38:37
By :
plakrim
โค้ดคุณ PlaKriM ใช้งานได้ครับ
แต่ผมถามนิดนึง คือเมื่อแสดงผลโดย
<script>
var result = ajax.responseText;
var tmp = result.split(":::");
alert(tmp[0]);
alert(tmp[1]);
alert(tmp[2]);
</script>
มันได้จะได้
510,509,508,507,506,505,504,503,502,501
a,b,c,d,e,f,g,h,i,j
1,2,3,4,5,6,7,8,9,10
ผมต้องแก้โค้ดอย่างไรครับจึงจะได้
510,a,1
509,b,2
แบบนี้น่ะครับ
Date :
2009-02-25 15:02:18
By :
nutkit
เอาไปยัดใส่ array ใน javascript ไงคับ แล้วลูปเอา
Date :
2009-02-25 15:25:16
By :
plakrim
เพิ่มเติม หรือจะ split ด้วย , อีกรอบก็ย่อมได้นะ มันก็จะได้ array สามตัวเหมือนกัน
Date :
2009-02-25 15:26:07
By :
plakrim
สรุปปัญหาตอนแรกอยู่ที่ตรงไหนครับ คุณ override onreadystatechange() ป่าวคับ
Date :
2009-02-25 20:49:20
By :
pjgunner
แล้วตอนนี้ คอนเฟิร์มยัง คับ
Date :
2009-02-25 20:53:33
By :
pjgunner
ตอบคุณเอี่ยว
ปัญหาไม่ได้อยู่ที่ readystatechange ครับ
ก็ไม่เข้าใจเหมือนกันว่าทำไม alert แล้วได้ค่า
แต่พอให้div = ค่าที่ได้กลับมาแล้วมันไม่ได้
ปล.ใครช่วยเขียนโค้ดที่คอมเม้น11,12 ให้ผมที
เขียนไม่ผ่าน - -"
Date :
2009-02-26 15:40:33
By :
nutkit
Load balance : Server 03