Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,151

HOME > ASP > ASP Forum > ส่งค่าด้วย Ajax แล้วค่าที่ไปบันทึกมันเป็น nullundefined


 

ส่งค่าด้วย Ajax แล้วค่าที่ไปบันทึกมันเป็น nullundefined

 



Topic : 070390



โพสกระทู้ ( 61 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook Blogger



ส่งค่าด้วย Ajax แล้วค่าที่ไปบันทึกมันเป็น nullundefined คือดึงค่ามาจาก textbox ครับ

สคริป

Code
<script language="JavaScript">
<!--
var HttPRequest = false;

function doCallAjax(direct_id) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}

if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}

var url = 'report_direct_sale_show_n_finish_update.asp';
var pmeters = 'Direct_n_finish_detail=' + document.getElementById('Direct_detail_')+direct_id.value + '&Direct_ID='+direct_id;
HttPRequest.open('POST',url,true);

HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);


HttPRequest.onreadystatechange = function()
{

if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan_" + direct_id).innerHTML = "Now is Loading...";
}

if(HttPRequest.readyState == 4) // Return Request
{
document.getElementById("mySpan_" + direct_id).innerHTML = HttPRequest.responseText;
}

}

/*
HttPRequest.onreadystatechange = call function .... // Call other function
*/

}

var hexChars = "0123456789ABCDEF";

function Dec2Hex (Dec) {
var a = Dec % 16;
var b = (Dec - a)/16;
hex = "" + hexChars.charAt(b) + hexChars.charAt(a);
return hex;
}

function thai(s){
s2='';
for(var i=0;i<s.length;i++){
if(s.charCodeAt(i)>3423){
n=s.charCodeAt(i)-3424;
s2+='%'+Dec2Hex(n);
}else s2+=s.charAt(i);
}
return s2
}

//-->
</script>


ส่วนของ textbox

Code
<div id="Note_1_<%=rs("direct_id")%>">
<input type="button" name="EditButton_<%=rs("direct_id")%>" value="ปิดงานไม่สำเร็จ" onclick="Note_2_<%=rs("direct_id")%>.style.display=''; Note_1_<%=rs("direct_id")%>.style.display='none'" />
<span id="mySpan_<%=rs("direct_id")%>">
<%
If rs("direct_n_finish_stat")<>"" Then
Response.Write rs("direct_n_finish_detail")
End If
%>
</span>
</div>
<div id="Note_2_<%=rs("direct_id")%>" style="display:none">
<input type="button" name="UpdateButton_<%=rs("direct_id")%>" value="บันทึก" onclick="EditButton_<%=rs("direct_id")%>.style.display='none'; Note_1_<%=rs("direct_id")%>.style.display=''; Note_2_<%=rs("direct_id")%>.style.display='none'; JavaScript:doCallAjax('<%=rs("direct_id")%>');" />
<input type="button" name="CancelButton_<%=rs("direct_id")%>" value="ยกเลิก" onclick="Note_1_<%=rs("direct_id")%>.style.display=''; Note_2_<%=rs("direct_id")%>.style.display='none'" />
<input type="text" name="Direct_detail_<%=rs("direct_id")%>" style="width:98%" />
</div>


หน้าที่บันทึกค่า

Code
<%
Response.Charset = "windows-874"
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1

Set Conn=Server.CreateObject ("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath ("Database1/direct_sale.mdb")

Direct_ID=Request.Form("Direct_ID")
Direct_n_finish_detail=Request.Form("Direct_n_finish_detail")
direct_n_finish_date=Year(Date)+543&"/"&right("00" & Month(Date),2)&"/"&right("00" & Day(Date),2)

Sql="SELECT direct_n_finish_stat,direct_n_finish_detail,direct_n_finish_date FROM direct_detail WHERE direct_id="&Direct_ID
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open Sql, Conn, 1,3

If rs.Recordcount<>0 Then
rs("direct_n_finish_stat")="1"
rs("direct_n_finish_detail")=Direct_n_finish_detail
rs("direct_n_finish_date")=direct_n_finish_date
rs.Update
direct_n_finish_stat=rs("direct_n_finish_stat")
rs.Close
End If

If direct_n_finish_stat<>"" Then
Response.Write Direct_n_finish_detail
End If
%>




Tag : ASP, JavaScript, Ajax







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-12-15 11:11:04 By : karn4851 View : 1003 Reply : 5
 

 

No. 1



โพสกระทู้ ( 11,825 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

Code (JavaScript)
eval("var Direct_n_finish_detail= document.getElementById('Direct_detail_"+direct_id+"').value");
var pmeters = 'Direct_n_finish_detail=' + Direct_n_finish_detail + '&Direct_ID='+direct_id;







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-15 11:25:14 By : ikikkok
 


 

No. 2



โพสกระทู้ ( 61 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook Blogger

ตอนบันทึกค่า ขึ้น error msg แบบนี้ครับ

Message: Object required
Line: 46
Char: 4
Code: 0
URI: http://localhost/anc52test/report_direct_sale_show_n_finish.asp
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-15 12:26:53 By : karn4851
 

 

No. 3



โพสกระทู้ ( 61 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook Blogger

คือถ้าใช้ eval เพื่อรวม string ให้เป็น document.getElementById('Direct_detail_2').value พอกดปุ่ม บันทึก เพื่อส่งค่าไปหน้าบันทึก มันจะไม่ไป และขึ้น error ว่า

Message: Object required
Line: 46
Char: 4
Code: 0
URI: http://localhost/anc52test/report_direct_sale_show_n_finish.asp


แต่ถ้าใช้แบบผม แล้วกดบันทึก มันส่งค่าไปหน้า บันทึก ได้ครับ แต่เฉพาะ textbox name"Direct_detail_<%=rs("direct_id")%>" (ก็คือ Direct_detail_2) จะมีค่าเป็น nullundefined

var pmeters = 'Direct_n_finish_detail=' + document.getElementById('Direct_detail_')+direct_id.value + '&Direct_ID='+direct_id;


แก้หลายวิธีแล้วครับ ยังไม่ได้เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-15 13:49:02 By : karn4851
 


 

No. 4



โพสกระทู้ ( 61 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook Blogger

ตอนนี้แก้ปัญหาได้แล้วครับ โดยเอา Form มาครอบส่วนของที่มี Textbox เอาไว้ครับ แล้วตรง Function doCallAjax เปลี่ยนดังนี้ครับ

ของเก่า

var pmeters = 'Direct_n_finish_detail=' + document.getElementById('Direct_detail_')+direct_id.value + '&Direct_ID='+direct_id;

ของใหม่ (มีตัวแปร พ่วงอีกนิดหน่อย)

var Direct_n_finish_detail1=eval("document.frm_n_finish.Direct_detail_"+direct_id+".value")
var finish_ck_1=eval("document.frm_n_finish.finish_ck_"+direct_id+".value")
var direct_finish_date1=eval("document.frm_n_finish.direct_finish_date_"+direct_id+".value")
var pmeters = 'direct_finish_date=' +thai(direct_finish_date1)+ '&finish_ck=' +finish_ck_1+ '&Direct_n_finish_detail=' + thai(Direct_n_finish_detail1) + '&Direct_ID='+direct_id;

สุดท้ายก็ขอขอบคุณคำแนะนำของคุณ PlaKriM ด้วยนะครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-15 17:07:05 By : karn4851
 


 

No. 5



โพสกระทู้ ( 11,825 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

ผมก็ตอบมั่วๆ ไปครับ เผื่อถูก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-15 17:29:45 By : ikikkok
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ส่งค่าด้วย Ajax แล้วค่าที่ไปบันทึกมันเป็น nullundefined
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, vps | เช่า vps , รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่