ใช้จาวาสคริปติดต่อฐานข้อมูล access ยังไงครับ
ลองหาในxxxเกิ้ลอยู่ 3 วันก็ยังไม่ได้
จุดประสงค์คือ
1 ใช้จาวาสคริปอย่างเดียวติดต่อฐานข้อมูล access ทั้ง บันทึก อัพเดท เรียกดูข้อมูล
2 ไม่ใช้เวบเซิพเวอร์ใดๆทั้งสิ้น
3 เป็นแค่ไฟล์ html กับ access
-หลักๆคือไม่อยากใช้ webserver
-validate ข้อมูลได้จากหน้าเวบ(IE) เช่น เช็คค่าว่าง, ใส่ตัวเลขอย่างเดียว, กรอกได้เฉพาะภาษาไทย
-บันทึก แก้ไข เรียกดูข้อมูลจากหน้าเวบ(IE)ได้ คือเป็บแบบออฟไลน์อะครับ
ก็คือใช้แค่ IE กับ ไฟล์ database.mdb(access) แบบออฟไลน์ครับ
แนะนำให้ทีนะครับ
ขอบคุณมากๆครับ
จุดประสงค์คือ
1 ใช้จาวาสคริปอย่างเดียวติดต่อฐานข้อมูล access ทั้ง บันทึก อัพเดท เรียกดูข้อมูล
2 ไม่ใช้เวบเซิพเวอร์ใดๆทั้งสิ้น
3 เป็นแค่ไฟล์ html กับ access
-หลักๆคือไม่อยากใช้ webserver
-validate ข้อมูลได้จากหน้าเวบ(IE) เช่น เช็คค่าว่าง, ใส่ตัวเลขอย่างเดียว, กรอกได้เฉพาะภาษาไทย
-บันทึก แก้ไข เรียกดูข้อมูลจากหน้าเวบ(IE)ได้ คือเป็บแบบออฟไลน์อะครับ
ก็คือใช้แค่ IE กับ ไฟล์ database.mdb(access) แบบออฟไลน์ครับ
แนะนำให้ทีนะครับ
ขอบคุณมากๆครับ
น่าจะหาอีกสัก 7 วัน แล้วค่อยมาถาม
ที่หาไม่เจอเพราะมันติดต่อกันไม่ได้น่ะสิครับ
ทำความเข้าใจกันก่อน
Javascript ทำงานฝั่ง Browser
PHP (หรือภาษาอื่นๆ) ทำงานฝั่ง Server
และ Database จะอยู่ที่ Server
ดังนั้นจะเห็นได้ว่า Javascript จะไม่สามารถติดต่อ Database ได้ เนื่องจากอยู่คนละที่กัน
ถ้าคิดจะทำเว็บเพื่อใช้ภายในองค์กร หรือ ใช้ในวงแลน หรือใช้ส่วนตัว ก็สาารถติดตั้งเว็บ Server เช่น PHP หรือ ASP ได้ครับ ก็สามารถเขียน HTML ได้เช่นกัน
อ้อมีอีกวิธีครับคือใช้ ActiveX ครับ แต่จะใช้งานบน IE ได้เท่านั้น ปัจจุบันไม่ค่อยนิยมแล้ว นอกจากเว็บไซต์ของ Microsoft
^
^
^
ใช้แบบนี้แหล่ะครับ เป็นงานที่เจ้านายสั่งมาอะครับ
ได้โค้ดมาจากเวบนอก
<script type="text/javascript">
var cn = new ActiveXObject("ADODB.Connection");
var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/test.mdb";
var rs = new ActiveXObject("ADODB.Recordset");
var SQL = "SELECT FROM member";
cn.Open(strConn);
rs.Open(SQL, cn);
ID.value = rs(0);
Name.value = rs(1);
alert(rs(0));
rs.Close();
cn.Close();
</script>
แต่มันก็ใช้ไม่ได้ นิ่งสนิท ไม่ตอบสนองอะไรเลย
เฮ้อ ผมก็ไม่รู้จะทำยังไงต่อไปแล้ว
คือเจ้านายบอกว่าอยากได้แบบไม่ต้องใช้ webserver
ขอบคุณล่วงหน้าครับ
จุดประสงค์ข้อ 2 มันยังไงกันแน่.... ?แล้วจะรันสคริปฝั่ง server ได้อย่างไร...
จุดประสงค์ข้อ 3 มันก็สามารถรัน html โดยไม่ต้องทำ web server ได้อ่านะ แต่มันมีข้อจำกัดเยอะนะครับ
และถ้าจะใช้แบบออฟไลน์....จะเขียน html ทำไม ใช้ฟอร์มของ Access เลยไม่ดีกว่ารึ....
แต่ความเป็นจริงแล้ว ถ้าไม่ได้เกี่ยวข้องอะำไรกับ Server การใช้ Application จะมีประสิทธิภาพดีกว่าครับ
var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/test.mdb";
driver และ database ถูกติดตั้งอย่างถูกต้องหรือไม่
var SQL = "SELECT * FROM member";
ตก * ใน query
ถ้าทั้ง 2 อย่างถูกต้อง ให้ตรวจสอบ ถ้าไม่มี Error ให้ตรวจสอบเวอร์ชั่นของ db ลองตรวจสอบการติดตั้ง Office ใหม่
ที่สำคัญ มันทำงานบน IE เท่านั้น
เป็นใช้ html+javascript กับ xml แทนครับ
หลักการเหมือนเดิมทุกอย่าง
เปลี่ยนเป็นบันทึกข้อมูลลงในไฟล์ xml แทน บันทึกต่อกันไปเรื่อยๆอะครับในไฟล์เดียวกัน
สามารถเรียกดู บันทึก แก้ไข ข้อมูลในไฟล์ xml ได้ โดยผ่าน javascript แล้วแสดงออกมาในรูปแบบ html
โดยรวมก็คือ สร้างฟอร์มรับข้อมูล พอกด submit ก็บันทึกลง xml(มีไฟล์เดียว จะ submit กี่ครั้งก็บันทึกลงไฟล์นี้ต่อกันไปตามลำดับ)
ประมาณนี้ครับ
ถ้าเป็นแบบนี้ทำได้ไหมครับ โดยที่ไม่ต้องใช้ webserver
แนะแนวทางให้หน่อยนะครับ
ขอบคุณมากๆครับ
xml ก็คือการเก็บข้อมูลในลักษณะของ Xml หรือเก็บให้ถูกตาม มาตรฐาน เท่านั้นเอง อาจจะทำเหมือน กับ
ลองเอาไปดูนะครับ สงสัยแล้วถามแล้วกัน เป็นการดึงค่า จาก ตารางที่เป็น Html แล้วเอาค่ามาทำเป็น File xml โดยใช้ Php Create file แต่ คุณอาจจะใช้ Javascript Create ก็ได้นะครับลองหาวิธีดู
ส่วน Javascript
function xml_test(pForm)
{
if(pForm == "1")
{
var inputs = Group_1.getElementsByTagName( 'input' );
grap = document.getElementById("Graph");
var path_xml ="x.xml";
var para = "";
para +="data="+ inputs.length +"&file_xml=" + path_xml;
var path_graph = "show_graph2.php?";
var tbo = document.getElementById("table1");
}
else
{
var inputs = Group_2.getElementsByTagName( 'input' );
var path_xml ="x2.xml";
var para = "";
para +="data="+ inputs.length +"&file_xml=" + path_xml;
grap = document.getElementById("Graph");
var path_graph = "show_graph2.php?";
var tbo = document.getElementById("table2");
// var path_xml ="/Appserv/www/Project_5209/x2.xml";
}
var xml_code ="";
var oTBody = tbo.tBodies[0];
var oRows = oTBody.rows;
for(var i = 0;i < oRows.length;i++)
{
xml_code +="<data>";
for(var j = 0;j < inputs.length; j++)
{
xml_code+="<data_item"+j+">"+oRows[i].cells[j].firstChild.nodeValue +"</data_item"+j+">";
}
xml_code +="</data>";
}
var xml_code = "<listData>"+xml_code+"</listData>";
//document.getElementById("xml").value = xml_code;
var req = Inint_AJAX();
req.onreadystatechange = function () {
if ( req.readyState == 4 && req.status == 200 ) {
//popup('show');
document.getElementById("lightboxImage").src=path_graph + "" + para;
showLightbox();
//document.getElementById("xml").value = req.responseText;
}
}
var query = "";
query +="path="+ path_xml +"&data_xml=" + xml_code;
req.open( "GET", "Create_file.php?" + query , true );
req.send( null );
return false;
//var fso = new ActiveXObject("Scripting.FileSystemObject");
//obj = fso.CreateTextFile(path_xml, true)
//obj.writeline(xml_data);
//obj.close();
//alert(inputs.length);
}
ส่วน PHp ครับ
<?php
$strFileName = $_GET['path'];
$data_xml = "<?xml version='1.0'?>".$_GET['data_xml'];
$objCreate = fopen($strFileName, 'w');
fwrite($objCreate,$data_xml );
fclose($objCreate);
//print $_GET['path'];
?>
ขอบคุณครับ