|
|
|
ช่วยดูโค้ดให้หน่อยครับ มันไม่ทำงานครับ เกี่ยวกับการทำ Auto Fill ครับ |
|
|
|
|
|
|
|
จากกระทู้ https://www.thaicreate.com/php/forum/122682.html ที่มีคนแนะนำมา
ผมบองมาแก้ไขโค้ด
หน้า Form
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.6.4.js"></script>
<script type="text/javascript">
$('#txtIDstd').bind('keyup change', function () {
var txtIDstd = $("input[name*='txtIDstd']").val();
if (txtIDstd.length <= 4) {
$("input[name*='txtIDstd']").focus();
$("input[name*='txtIDstd']").addClass('error-style');
return false;
} else {
$("input[name*='txtIDstd']").removeClass('error-style');
$.ajax({
url: "return_ids.php",
type: "POST",
data: 'IDstd=' + $("#txtIDstd").val(),
success: function (result) {
//console.log(result);
var obj = $.parseJSON(result);
//console.log(obj);
if (obj === "") {
//$("#idStudent").val('');
$("input[name*='txtIDstd']").focus();
$("input[name*='txtIDstd']").val('');
$("select[name*='txtfname']").val('');
$("select[name*='txtlname']").val('');
$("select[name*='txtclass']").val('');
$("select[name*='txtroom']").val('');
$("select[name*='txtyearin']").val('');
$("#nameDevice").removeClass('error-style');
} else {
$("#nameDevice").addClass('error-style');
$("#room1").focus();
$.each(obj, function (key, inval) {
$("#txtIDstd").val(inval["IDstd"]);
$("input[name*='txtIDstd']").val(inval["IDstd"]);
$("select[name*='txtfname']").val(inval["fname"]);
$("select[name*='txtlname']").val(inval["lname"]);
$("select[name*='txtclass']").val(inval["class"]);
$("select[name*='txtroom']").val(inval["room"]);
$("select[name*='txtyearin']").val(inval["yearin"]);
});
}
}
});
}
});
</script>
<style>
@import "compass/css3";
.test {
display: block;
margin-bottom: 1em;
border: 1px solid silver;
width: 100%;
padding: .5em;
}
.test:read-only {
background: #CCCCCC;
color:#000000;
}
.test:read-write {
background: lightgreen;
}
* {
box-sizing: border-box;
}
body {
padding: 1em;
}
</style>
</head>
<body OnLoad="document.autofill.txtIDstd.focus();">
<h2>jQuery Auto fill ดึงข้อมูลอัตโนมัติ</h2>
<form method="post" enctype="multipart/form-data" name="autofill" id="autofill">
<table width="302" border="1">
<tr>
<td width="104">IDstd</td>
<td width="153"><input type="text" id="txtIDstd" name="txtIDstd"></td>
</tr>
<tr>
<td>fname</td>
<td><input type="text" id="txtfname" name="txtfname"></td>
</tr>
<tr>
<td>lname</td>
<td><input name="txtlname" type="text" id="txtlname"></td>
</tr>
<tr>
<td>class</td>
<td><input type="text" id="txtclass" name="txtclass"></td>
</tr>
<tr>
<td>room</td>
<td><input type="text" id="txtroom" name="txtroom"></td>
</tr>
<tr>
<td>yearin</td>
<td><input type="text" id="txtyearin" name="txtyearin"></td>
</tr>
</table>
</form>
</body>
</html>
หน้า return_ids.php
Code (PHP)
<?php
include("db_connect.php");
$mysqli = connect();
//$sql="SELECT * FROM member WHERE IDstd like '".$_POST['IDstd']."'";
$sql="SELECT * FROM member WHERE IDstd like '09180' ";
//$sql="SELECT * FROM tb_course WHERE courseID='1' ";
//$qr=select($sql); // select ข้อมูลในฐานข้อมูลมาแสดง กรณีดึงมาแค่รายการแรกรายการเดียว
//$rs=$qr[0]; // จำเป็นต้องกำหนด
if($qr=select($sql)) {
$rs=$qr[0];
$result[]=array(
"IDstd"=>$rs['IDstd'],
"fname"=>$rs['fname'],
"lname"=>$rs['lname'],
"class"=>$rs['class'],
"room"=>$rs['room'],
"yearin"=>$rs['yearin'],
);
$mysqli->close();
echo json_encode($result);
}else{
$result = '';
echo json_encode($result);
}
?>
ในสว่นของ return_id.php ลองรันดูแล้ว ค่าไม่เป็นภาษาไทย
Code
[{"IDstd":"09180","fname":"\u0e2d\u0e31\u0e04\u0e19\u0e35","lname":"\u0e18\u0e19\u0e39\u0e2a\u0e39\u0e15\u0e23","class":"5","room":"6","yearin":"2557"}]
Tag : PHP, MySQL, Ajax, jQuery
|
ประวัติการแก้ไข 2016-05-02 12:59:37
|
|
|
|
|
Date :
2016-05-02 12:41:38 |
By :
akkaneetha |
View :
946 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ค่ามันก็ออกแบบนั้น ถูกแล้วนะ เวลาส่งกลับมามันเป็นภาษาไทยเอง
ฉนั้นมันต้องมาดูว่า ตัวไฟล์เป็น utf-8 without BOM หรือเปล่า
ข้อมูลในตาราง Encode เป็น utf-8 หรือเปล่า
ในหน้า return_ids.php น่าจะ set utf-8 ด้วยนะไม่แน่ใจว่า mysqli set utf-8 แบบไหน
|
|
|
|
|
Date :
2016-05-02 14:02:40 |
By :
Kin-Kee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Develop Tool
- ค่าที่ส่งกลับมา เป็นภาษาไทย คงต้องดูว่าเชื่อมต่อเป็น utf-8 หรือยัง
- กรอกรหัส 8 หลัก ชื่อและข้อมูลอื่นๆ แสดงกลับ
- ข้อมูลจาก tab Network ที่จะเกิดขึ้นหลังส่งค่า
แสดงว่าส่งค่ากลับมาได้หมด แต่มันไม่เป็นภาษาไทย
|
|
|
|
|
Date :
2016-05-02 14:16:49 |
By :
Kin-Kee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|