GORAGOD.com
freelance, web developer, web designer, hosting, domain name
Home
Host & Domain
Portfolio
จากบทที่ 10 เรื่อง Combobox ส่งค่าที่เอามาจาก Form ไม่ได้ครับ
Home
Forum
จากบทที่ 10 เรื่อง Combobox ส่งค่าที่เอามาจาก Form ไม่ได้ครับ
Saichon
req.open("GET", "province.php?test_date="+document.getElementById('dd').value+"$data="+src+"&val="+val);
แบบนี้ขึ้น erorว่า document.getElementById(...) is null or not an object น่ะครับ ไม่ทราบว่าต้องแก้ยังงัยครับ
ขอบคุณมากครับ
goragod
ตัวอย่างก็ทำงานได้นี่ครับดังนั้นที่ผิดก็คงอยู่ที่ดัดแปลงผิด
is null or not an object หมายถึงมันหา id ที่กำหนดไม่เจอครับ ให้ลองตรวจสอบว่า โค้ดที่เขียน ระบุ id ถูกต้องหรือเปล่า
Saichon
ลองแล้วไม่ได้ครับ รบกวนช่วยดูให้หน่อยครับ ขณะนี้ขึ้นว่า 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>
";
?>
Saichon
คือ แค่ไปประกาศตัวแปรเหนือบันทัดนั้นก็ 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);
รบกวนช่วยหน่อยครับ ติดแค่ตรงนี้นิดเดียวเองครับ
ขอบคุณมากครับ
goragod
data_sent มันมีหรือเปล่าล่ะ ถ้า view source แล้วไม่มี มันก็หาไม่เจอ
หน้านี้ถูกสร้างด้วย ajax หรือเปล่า ถ้าใช่ มันก็อาจจะหาไม่เจอ
การทดสอบง่ายๆ ก็คือให้ลองเรียกหน้านี้ตรงๆผ่าน URL ถ้าทำงานปกติ ก็แสดงว่าวิธีเรียกไม่ถูกต้อง ส่วนวิธีแก้ไข จริงๆแล้วมีบนเว็บ อาจต้องใช้ความเข้าใจหลายๆส่วน เพื่อทำความเข้าใจกับมัน ถึงจะออกแบบได้ถูก
อ้อ...พอรู้แล้ว ให้ย้ายเอา Javascript ทั้งหมด ไปไว้ด้านล่าง ครับ (ก่อน
</body>
หลัง
<form>
)
Saichon
อ๋อออ ย้ายเอา Javascript ลงมาข้างล่างก็ได้แล้ว
ขอบคุณมากครับ ได้แล้วครับ
นั่งงงอยู่ตั้งนาน
ความคิดเห็น
รายละเอียด
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^
is null or not an object หมายถึงมันหา id ที่กำหนดไม่เจอครับ ให้ลองตรวจสอบว่า โค้ดที่เขียน ระบุ id ถูกต้องหรือเปล่า
<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> ";
?>
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);
รบกวนช่วยหน่อยครับ ติดแค่ตรงนี้นิดเดียวเองครับ
ขอบคุณมากครับ
หน้านี้ถูกสร้างด้วย ajax หรือเปล่า ถ้าใช่ มันก็อาจจะหาไม่เจอ
การทดสอบง่ายๆ ก็คือให้ลองเรียกหน้านี้ตรงๆผ่าน URL ถ้าทำงานปกติ ก็แสดงว่าวิธีเรียกไม่ถูกต้อง ส่วนวิธีแก้ไข จริงๆแล้วมีบนเว็บ อาจต้องใช้ความเข้าใจหลายๆส่วน เพื่อทำความเข้าใจกับมัน ถึงจะออกแบบได้ถูก
อ้อ...พอรู้แล้ว ให้ย้ายเอา Javascript ทั้งหมด ไปไว้ด้านล่าง ครับ (ก่อน </body> หลัง <form>)
ขอบคุณมากครับ ได้แล้วครับ
นั่งงงอยู่ตั้งนาน