A-AA+then

่javascript โชว์ว่า undefined แก้้ยังไงดีคะ

2,234
เป็นการแสดงข้อความให้สไลด์อัตโนมัติค่ะ  แต่ติดปัญหาตรงที่ว่าข้อความที่โชว์ออกมามันมีข้อความว่า "undefined" ออกมาด้วยค่ะ เลยไม่รู้ว่าต้องแก้ยังไงค่ะ และข้อความที่โชว์นั้นเป็นแบบ ramdom ค่ะ ถ้าต้องการเปลี่ยนจาก random เป็นแบบเรียงลำดับตาม id ในฐานข้อมูลควรทำไงดีคะ รบกวนผู้รู้หน่อยค่ะ

----code------

<SCRIPT type="text/javascript">
var quotations = new Array()

<?
$strSQL="select * from tb_page where mainpage_id=34 order by page_id DESC";
$strQuery=mysql_query($strSQL);
$i=0;
while($strResult=mysql_fetch_array($strQuery)){
$i=$i+1;
?>

quotations[<?=$i;?>]= "<?=$strResult["page_detail_th"];?> "

<?
}
?>


function display()
{
a=Math.floor(Math.random()*quotations.length)
document.getElementById('quotation').innerHTML=quotations[a]
setTimeout("display()",1000)
}
</SCRIPT>

</head>

<body>
<div id="quotation">
<SCRIPT type="text/javascript">display()</SCRIPT>
</div>


3 ความคิดเห็น

อาจเป็นได้ครับ ถ้า quotations[a] ไม่มีอยู่จริง อาจต้องตรวจสอบก่อนครับ
1

แล้วต้องตรวจสอบยังไงเหรอคะ พอดีไม่ค่อยรู้เรื่อง javascript เท่าไหร่
2

if(quotations[a]){
 // do some thing
}

มีหลายวิธี ขึ้นกับชนิดข้อมูลที่มี ด้านบนเป็นวิธีหนึ่ง การแก้ไขจริงๆอาจต้องดูความต้องการที่ต้องการนะครับ เช่น อาจต้องวนลูปเพื่อสุมใหม่หากไม่มีเป็นต้น

if(a >=0 && a < quotations.length){
  // do some thing
}

นี่ก็อีกวิธี
3
^