ช่วยด้วยคร่า...งง is null or not an object
function edit_data()
{
var PolicyType_=document.getElementById("s_a");
var PolicyType=PolicyType_.options[PolicyType_.selectedIndex];
var PlanNameId_edit=document.form_show.PlanNameId_edit.value;
var PlanName_edit=document.form_show.PlanName_edit.value;
var req;
if (window.XMLHttpRequest)
req=new XMLHttpRequest();
else if (window.ActiveXObject)
req=new ActiveXObject("Microsoft.XMLHTTP");
else{
alert("Browser not support");
return false;
}
req.onreadystatechange = function()
{
if (req.readyState==4) {
alert("บันทึกข้อมูลเรียบร้อยแล้วค่ะ");
do_selectchange(PolicyType_);
}
document.getElementById("progress_policy").innerHTML="<img src=../pic/pro.gif>";
}
var str=Math.random();
var querystr="";
if(PolicyType.selected){PolicyType=PolicyType.value;} else {PolicyType='';}
querystr+="planname_db.php?pop="+str;
querystr+="&PolicyType="+PolicyType;
querystr+="&PlanName_edit="+PlanName_edit;
querystr+="&PlanNameId_edit="+PlanNameId_edit;
//querystr+="&showType="+value;
querystr+="&db="+'update';
alert(querystr);
req.open("GET", querystr ,true);
req.send(null);
}
<form name="form_show" id="form_show">
<td width="364" bgcolor="#F0F0F0" id="<?=$PlanNameId?>" style="display:none;" name="my_row2">
<input name="PlanName_edit" type="text" id="PlanName_edit"value="<?=$PlanName?>" size="40" />
<input name="PlanNameId_edit" type="text" id="PlanNameId_edit" value="<?=$PlanNameId?>">
<input name="db" id="db" type="text" value="update">
<input name="PolicyType" id="PolicyType" type="text" value="<?=$PolicyType?>">
<input type="button" name="Button" value="บันทึก" onClick="edit_data();">
<div id="progress"></div>
</td>
</form>
พอเรากดบันทึกแล้วมันก็ error ว่า 'document.form_show.PlanNameId_edit.value' is null or not an object
งง จริงๆ ค่ะ ทำมาสองวันแล้ว ไม่ได้เลย
document.form_show.elements['PlanNameId_edit'].value
น่าจะ work นะครับ
คือว่า เวลาเราคลิกที่ปุ่มแก้ไขแล้ว ก็จะ มีหน้าขึ้นมาทางด้านขวามืออ่ะค่ะ
คือว่า พอเราคลิกที่ ปุ่มบันทึก มันก็จะเอาค่าที่เราใส่ไป ไปอัพเดท แล้วเราก็จะเอาค่า พวกนี้ไป อัพเดท
แต่มีปัญหาตรงที่ว่า ลำดับที่ 1 มันจะทำการแก้ไขได้ แต่ลำดับอื่นๆ พอเรากดตกลง แล้วให้มัน alert ส่งค่าที่จะไป update ดูแล้ว
มันดันส่ง id ของลำดับที่ 1 ไปแทน ที่จะเป็น สอง สาม อ่ะค่ะ
แบบนี้จะแก้ยังไงดีอ่ะค่ะ
ฟอร์มที่ใช้อยู่ตอนนี้
<form name="form_show" id="form_show">
<td width="393" bgcolor="#F0F0F0" id="<?=$PlanNameId?>" style="display:none;" name="my_row2">
<input name="PlanName_edit" type="text" id="PlanName_edit"value="<?=$PlanName?>" size="40" />
<input name="PlanNameId_edit" type="text" id="PlanNameId_edit" value="<?=$PlanNameId?>" style="display:none">
<input name="db" id="db" type="text" value="update" style="display:none">
<input name="PolicyType" id="PolicyType" type="text" value="<?=$PolicyType?>" style="display:none">
<input type="button" name="Button" value="บันทึก" onClick="edit_data()">
<div id="progress"></div> </td>
</form>
ใช้ style="display:none" แทน hidden เพราะว่า get ค่าของ hidden ไม่เป็น ไม่แน่ใจเหมือนกันป่าวค่ะ (ลองแล้วแต่ลืม)
-*-
ฝากตอบคอมเม้นด้านบน
ใช้แบบนี้แล้วได้ค่ะ
var PlanName_edit=document.getElementById('PlanName_edit').value;
var PlanNameId_edit=document.getElementById('PlanNameId_edit').value;
เง้อ up รูปไม่ได้ เด๋วพรุ่งนี้ไปที่ทำงานจะ up ให้ช่วยดูให้นะคะ ขอบคุณล่วงหน้าค่ะ
1 ต้องกำหนด id ให้กับ element นั้นๆ เช่น id = 'xx';
2 ชื่อ id ต้องขึ้นต้นด้วยภาษาอังกฤษเท่านั้น และ ไม่มีอักขระต้องห้าม
3. ห้ามมีชื่อ id ซ้ำกัน และ ไม่สามารถเป็น Array ได้ เช่น value[] ไม่ได้หมายความถึง array ชื่อ value เวลาจะเรียกต้องใช้ document.getElementById('value[] ')