A-AA+then

ช่วยด้วยคร่า...งง is null or not an object

2,563

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

งง จริงๆ ค่ะ ทำมาสองวันแล้ว ไม่ได้เลย

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

code มันมีเท่านี้เองหรอคับขอแบบเต็มๆ ได้มิลองเอาไป run เล่นๆ ก็ไม่เห็นมันจะ error เลยนิคับ
1

ลองแก้เป็น
document.form_show.elements['PlanNameId_edit'].value
น่าจะ work นะครับ
2

document.getElementById('PlanNameId_edit');
3

ขอบคุณทุกคำตอบค่ะ ได้แล้วค่า..................
4

ได้จากอันไหนหว่า ?
5

รบกวนต่ออีกค่ะ

คือว่า เวลาเราคลิกที่ปุ่มแก้ไขแล้ว ก็จะ มีหน้าขึ้นมาทางด้านขวามืออ่ะค่ะ

คือว่า พอเราคลิกที่ ปุ่มบันทึก มันก็จะเอาค่าที่เราใส่ไป ไปอัพเดท แล้วเราก็จะเอาค่า พวกนี้ไป อัพเดท

แต่มีปัญหาตรงที่ว่า ลำดับที่ 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;
6


เง้อ up รูปไม่ได้ เด๋วพรุ่งนี้ไปที่ทำงานจะ up ให้ช่วยดูให้นะคะ ขอบคุณล่วงหน้าค่ะ
7

อ่านค่าของ element ใดๆ สามารถอ่านได้จาก document.getElementById ได้ทั้งหมดครับ โดยมีกฏว่า

1 ต้องกำหนด id ให้กับ element นั้นๆ เช่น id = 'xx';
2 ชื่อ id ต้องขึ้นต้นด้วยภาษาอังกฤษเท่านั้น และ ไม่มีอักขระต้องห้าม
3. ห้ามมีชื่อ id ซ้ำกัน และ ไม่สามารถเป็น Array ได้ เช่น value[] ไม่ได้หมายความถึง array ชื่อ value เวลาจะเรียกต้องใช้ document.getElementById('value[] ')
8
^