GORAGOD.com

freelance, web developer, web designer, hosting, domain name

จากบทที่ 10 เรื่อง Combobox ส่งค่าที่เอามาจาก Form ไม่ได้ครับ

req.open("GET", "province.php?test_date="+document.getElementById('dd').value+"$data="+src+"&val="+val);

แบบนี้ขึ้น erorว่า document.getElementById(...) is null or not an object น่ะครับ ไม่ทราบว่าต้องแก้ยังงัยครับ

ขอบคุณมากครับ
15 ธ.ค. 2552 5 2,611

ตัวอย่างก็ทำงานได้นี่ครับดังนั้นที่ผิดก็คงอยู่ที่ดัดแปลงผิด

is null or not an object หมายถึงมันหา id ที่กำหนดไม่เจอครับ ให้ลองตรวจสอบว่า โค้ดที่เขียน ระบุ id ถูกต้องหรือเปล่า
#1

ลองแล้วไม่ได้ครับ รบกวนช่วยดูให้หน่อยครับ ขณะนี้ขึ้นว่า Object required ผมก็ไล่ดูแล้วนะว่าไม่มีอะไรผิด ขอบคุณมากครับ

<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", "test.php?dd="+ document.getElementById('data_sent').value +"&data="+src+"&val="+val); 
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // set Header
  req.send(null); //?????
}

window.onLoad=dochange('amphur', -1);
</script>

<body>
<?
  $amphur=$_POST['amphur'];
  $tumbon=$_POST['tumbon'];
  $dd=$_POST['dd'];
 
  echo "<form name=sel action='' method=POST> ";
  echo "????? : <font id=amphur><select> ";
  echo "<option value='0'>--------------------</option> " ;
  echo "</select></font> ";
 
  echo "???? : <font id=tumbon>";
  echo "<input type=\"Text\" name=\"dd\" id=\"dd\" value=\"\">" ;
  echo "</font> <br><br>";

 echo "<input type=\"Text\" name=\"data_sent\" id=\"data_sent\" value=\"test\">" ;

 echo "</form> ";
?>

#2

คือ แค่ไปประกาศตัวแปรเหนือบันทัดนั้นก็ Error แล้วครับ

var mmdate=document.sel.data_sent.value; 
req3.open("GET", "select_mdate.php?wex_date_employed="+mmdaet+"&data="+src+"&val="+val);

แบบนี้ก็ error ครับ
var mmdate=document.getElementById('data_sent').value;
req3.open("GET", "select_mdate.php?wex_date_employed="+mmdaet+"&data="+src+"&val="+val);

รบกวนช่วยหน่อยครับ ติดแค่ตรงนี้นิดเดียวเองครับ

ขอบคุณมากครับ
#3

data_sent มันมีหรือเปล่าล่ะ ถ้า view source แล้วไม่มี มันก็หาไม่เจอ

หน้านี้ถูกสร้างด้วย ajax หรือเปล่า ถ้าใช่ มันก็อาจจะหาไม่เจอ

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

อ้อ...พอรู้แล้ว ให้ย้ายเอา Javascript ทั้งหมด ไปไว้ด้านล่าง ครับ (ก่อน </body> หลัง <form>)
#4

อ๋อออ ย้ายเอา Javascript ลงมาข้างล่างก็ได้แล้ว
ขอบคุณมากครับ ได้แล้วครับ

นั่งงงอยู่ตั้งนาน
#5
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^