ถามการตั้งค่า maxlength ในการข้อมูลช่อง textbox ของ datagrid
ไม่มี code ที่ใช้อยู่ให้ เทสหรอคับ
Date :
2016-01-18 12:45:44
By :
progamer2000
ตัวที่ใช้อยู่เดิม เป็น VB6 ครับ แต่ผมพัฒนาต่อยอดเป็น Web Application เลยหาแกะโค้ตเอา และทดสอบเองครับ
ที่ตัว demo ที่หาให้ css กับ js ของโค้ตมา มันค่อนข้างสำเร็จรูป + ระยะเวลาแกะโค้ตนาน เลยขอคำปรึกษาหน่อยครับ
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/default/easyui.css" >
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/icon.css" >
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/demo/demo.css" >
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js" ></script>
<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js" ></script>
<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.edatagrid.js" ></script>
หรือมีตัวอย่าง datagrid อื่นที่นำมาปรับใช้ง่าย ๆ หน่อยก็ดีครับพี่
Date :
2016-01-18 13:08:32
By :
fad1412
- -"
ผมไม่รู้คุณเขียน code ไว้ยังไง ถึงกำหนด maxlength ไม่ได้อะครับ
จะให้ผมไปนั่ง code ใหม่ทั้งหมด มันก็คงไม่ใช่นะ เพื่อหาว่าคุณบั๊กตรงไหน
คุณควรจะแปะ code + ข้อมูลตัวอย่างที่ให้ คนช่วยเขาเอาไป เทสรันได้ ออกมาหน้าตาเหมือนที่คุณทำ เขาจะได้ช่วยหาว่า มันบั๊กตรงไหนครับ
Date :
2016-01-18 13:50:35
By :
progamer2000
นี่คือโค้ต ตัวอย่างที่ผมนำมาทดสอบครับ จะให้ maxlength เฉพาะ column field phone มีค่าเป็น 10 อักษร ขอคำปรึกษาด้วยครับ
ไฟล์ index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="jquery,ui,easy,easyui,web">
<meta name="description" content="easyui help you build your web page easily!">
<title>Build CRUD DataGrid with jQuery EasyUI - jQuery EasyUI Demo</title>
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/icon.css">
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/demo/demo.css">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js"></script>
<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.edatagrid.js"></script>
<script type="text/javascript">
$(function(){
$('#dg').edatagrid({
url: 'get_users.php',
saveUrl: 'save_user.php',
updateUrl: 'update_user.php',
destroyUrl: 'destroy_user.php'
});
});
</script>
</head>
<body>
<h2>CRUD DataGrid</h2>
<div class="demo-info" style="margin-bottom:10px">
<div class="demo-tip icon-tip"> </div>
<div>Double click the row to begin editing.</div>
</div>
<table id="dg" title="My Users" style="width:700px;height:250px"
toolbar="#toolbar" pagination="true" idField="id"
rownumbers="true" fitColumns="true" singleSelect="true">
<thead>
<tr>
<th field="firstname" width="50" editor="{type:'validatebox',options:{required:true}}">First Name</th>
<th field="lastname" width="50" editor="{type:'validatebox',options:{required:true}}">Last Name</th>
<th field="phone" width="50" editor="{type:'validatebox',options:{required:true}}">Phone</th>
<th field="email" width="50" editor="{type:'validatebox',options:{validType:'email'}}">Email</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="javascript:$('#dg').edatagrid('addRow')">New</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="javascript:$('#dg').edatagrid('destroyRow')">Destroy</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-save" plain="true" onclick="javascript:$('#dg').edatagrid('saveRow')">Save</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-undo" plain="true" onclick="javascript:$('#dg').edatagrid('cancelRow')">Cancel</a>
</div>
</body>
</html>
ตารางฐานข้อมูล
Code (SQL)
/*
MySQL Data Transfer
Source Host: localhost
Source Database: mydb
Target Host: localhost
Target Database: mydb
Date: 2011/6/3 13:59:12
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for users
-- ----------------------------
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`firstname` varchar(50) default NULL,
`lastname` varchar(50) default NULL,
`phone` varchar(200) default NULL,
`email` varchar(200) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `users` VALUES ('3', 'fname1', 'lname1', '(000)000-0000', '[email protected] ');
INSERT INTO `users` VALUES ('4', 'fname2', 'lname2', '(000)000-0000', '[email protected] ');
INSERT INTO `users` VALUES ('5', 'fname3', 'lname3', '(000)000-0000', '[email protected] ');
INSERT INTO `users` VALUES ('7', 'fname4', 'lname4', '(000)000-0000', '[email protected] ');
INSERT INTO `users` VALUES ('8', 'fname5', 'lname5', '(000)000-0000', '[email protected] ');
INSERT INTO `users` VALUES ('9', 'fname6', 'lname6', '(000)000-0000', '[email protected] ');
INSERT INTO `users` VALUES ('10', 'fname7', 'lname7', '(000)000-0000', '[email protected] ');
INSERT INTO `users` VALUES ('11', 'fname8', 'lname8', '(000)000-0000', '[email protected] ');
INSERT INTO `users` VALUES ('12', 'fname9', 'lname9', '(000)000-0000', '[email protected] ');
INSERT INTO `users` VALUES ('13', 'fname10', 'lname10', '(000)000-0000', '[email protected] ');
การ เรียกดู บันทึก แก้ไข และลบข้อมูล จะเป็น php (ตามลำดับ)
ไฟล์ get_users.php
include_once 'inc/connect_db.php';
$rs = mysql_query('select * from users');
$result = array();
while($row = mysql_fetch_object($rs)){
array_push($result, $row);
}
echo json_encode($result);
ไฟล์ save_user.php
$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
$phone = $_REQUEST['phone'];
$email = $_REQUEST['email'];
include 'inc/connect_db.php';
$sql = "insert into users(firstname,lastname,phone,email) values('$firstname','$lastname','$phone','$email')";
@mysql_query($sql);
echo json_encode(array(
'id' => mysql_insert_id(),
'firstname' => $firstname,
'lastname' => $lastname,
'phone' => $phone,
'email' => $email
));
ไฟล์ update_user.php
$id = intval($_REQUEST['id']);
$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
$phone = $_REQUEST['phone'];
$email = $_REQUEST['email'];
include 'inc/connect_db.php';
$sql = "update users set firstname='$firstname',lastname='$lastname',phone='$phone',email='$email' where id=$id";
@mysql_query($sql);
echo json_encode(array(
'id' => $id,
'firstname' => $firstname,
'lastname' => $lastname,
'phone' => $phone,
'email' => $email
));
ไฟล์ destroy_user.php
$id = intval($_REQUEST['id']);
include 'inc/connect_db.php';
$sql = "delete from users where id=$id";
@mysql_query($sql);
echo json_encode(array('success'=>true));
ประวัติการแก้ไข 2016-01-18 14:26:02 2016-01-18 14:27:09
Date :
2016-01-18 14:25:25
By :
fad1412
ยอมแพ้คับ jquery มัน append row โดย datatable พยายามเขียนให้มันแทรก maxlength ด้วย jquery มันไม่ได้แฮะ แต่ถ้าแปะไปหลังจาก กดใน console log มันยอม
Date :
2016-01-18 16:32:49
By :
progamer2000
Code (JavaScript)
$('#dg').datagrid({
columns:[[
{field:'address2',title:'ที่อยู่ 2', width:80,
formatter: function(value,row,index){
if (value.length > 10){
return value.substring(0, 10);
} else {
return value;
}
}
}
]]
});
ผมมั่วเอาแบบนี้ได้มัยครับ
ประวัติการแก้ไข 2016-01-18 16:55:27 2016-01-18 16:56:10
Date :
2016-01-18 16:54:34
By :
มานะ
ดู selector ตอนมันรันเสร็จแล้ว ยิง javascript setAttribute("maxlength", "10")
Date :
2016-01-18 16:58:24
By :
noMerzy
ตอบคำถามพี่ มานะ ยังไม่ได้ครับ ลองใส่ดูจะแสดงเฉพาะ field ที่อยู่ 2 ตัวเดียว field ไม่แสดง
ตอบคำถามพี่ Guest ผม Copy สร้างไฟล์ CSS กับ JS มาครับ จากลองไล่ดูก่อน
ตอบคำถามพี่ Boat Junior ขอบคุณครับ
(ปล. ถ้าไม่ได้ไม่เป็นไรคับพี่ ผมคงกำหนด length ที่ DB แทน กัน User พิมพ์เกินบันทึกครับ เจอเอาโค้ตยากนั่งแกะมันจะนานไป)
Date :
2016-01-18 17:33:25
By :
fad1412
Load balance : Server 04