|
|
|
สอบถามเรื่องการล้าง textbox และ autofill ด้วย jquery ครับ ลองทำแล้วแต่ยังไม่ได้ครับ |
|
|
|
|
|
|
|
http://www.w3schools.com/tags/att_input_autocomplete.asp
|
|
|
|
|
Date :
2015-07-23 15:05:50 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดันทีนึง
|
|
|
|
|
Date :
2015-07-24 08:29:50 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เดาเอานะครับ
ผมว่า flow control ผิดตรงที่ ให้แสดง บันทัดใหม่ ก่อนการ ajax จะเสร็จสิ้น
แล้ว2บันทัด ข้างล่างมันไปกำหนด ค่าให้ทีหลัง
19.$("input[id^='std_name']").val(value["fristname"]);
20.$("input[id^='std_surname']").val(value["lastname"]);
ดังนั้น ต้องเปลียนการขึ้นบันทัดใหม่ให้ทำงานหลัง 2 บันทัดบน
หรือแก้ไข 2 บันทัดบน ให้ กำหนด ค่า เฉพาะ row ที่กำหนด
04.$("input[id^='std_id']").on('keyup keypress', function(){
var parent_tr = $(this.).parent().parent(); // parent แรก เป็น td
19.$(parent_tr).find("input[id^='std_name']").val(value["fristname"]);
20.$(parent_tr).find(("input[id^='std_surname']").val(value["lastname"]);
ทำแบบนี้จะได้ไม่ไป กำหนดค่าทัด บันทัดอื่นๆ
|
|
|
|
|
Date :
2015-07-24 09:02:42 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อีกที บันทัด 15.var obj = $.parseJSON(result);
result มันคืออะไร มีค่าอะไรครับ
|
|
|
|
|
Date :
2015-07-24 11:23:43 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือ json จากอีกไฟล์นึงครับ
Code (PHP)
echo json_encode($resultArray);
|
|
|
|
|
Date :
2015-07-24 11:48:02 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บันทัด 19 20 แก้ให้มันอ้างอิง row ที่ทำงานอยู่ให้ได้ครับ
ผมไม่รู้ว่า เขียนโค๊ด เพิ่มบันทัดไว้แบบไหน
เลยอาจจะอ้างอิงผิด ตรง var parent_tr = $(this).parent().parent();
ซึงคงต้องอ้างอิงรูปแบบอื่นๆ ที่ถูกต้องตาม รูปแบบการสร้าง บันทัดใหม่
เพราะบันทัด 19 20 เป็นการกำหนดค่าแบบ global ให้กับ tag input ทุกตัว ที่มี id=std_id
ก็ลองหาวิธีให้มันกำหนดให้ได้ว่า ต้องใส่ข้อมูลที่บันทัดไหน แค่บันทัดเดียวไม่ต้องใส่ บันทัดอื่นๆ
|
|
|
|
|
Date :
2015-07-24 12:16:47 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นั้นละครับปัญหา 55 กำลังหาทาง
โค้ดเพิ่มบรรทัด
Code (PHP)
<td><input type="text" class="form-control input-sm" id="std_id" name="std_id[]" maxlength="14" onkeyup="if ($(this.parentNode.parentNode).is(':last-child')) { AddRow($(this).val()); }" onkeypress="return inputLimiter(event,'Numbers')"></td>
function AddRow(str_val)
{
//alert(str_val.length);
if(str_val.length==14 || str_val.length==13 ) {
$("#myTable tr:last").after('<tr>'+
'<td><button type="button" onclick="deleteRow(this)" class="btn btn-danger btn-sm"> -- </button></td>'+
'<td><input type="text" class="form-control input-sm" id="std_id" name="std_id[]" maxlength="14" onkeyup="if ($(this.parentNode.parentNode).is(":last-child")) { AddRow($(this).val()); }" onkeypress="return inputLimiter(event,"Numbers")"></td>'+
'<td><input type="text" class="form-control input-sm" id="std_name" name="std_name[]"></td>'+
'<td><input type="text" class="form-control input-sm" id="std_surname" name="std_surname[]"></td>'+
'</tr>');
//rowcount
var rowCount = $("#mytbody").children().length;
$('#memtotal').val(rowCount);
}
}
|
|
|
|
|
Date :
2015-07-24 12:27:09 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดันอีกนิด
|
|
|
|
|
Date :
2015-07-24 19:26:47 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองบอกความต้องการมาใหม่ดีไหมครับ ผมอ่านโค๊ดแล้วรู้สึกงงกับความต้องการ
แต่ล่ะช่อง มีไว้ทำอะไร เพื่ออะไร ไม่ต้องเขียนเป็นโค๊ดครับ ดูโค๊ดแล้วมึนครับ
อธิบายเป็นภาษาคนง่ายๆ นี่แหล่ะครับ
เช่น ช่อง input name="std_id[]" มีไว้เพื่อคีย์ค้นหา ผู้ใช้ตาม รหัส แล้วนำไปไว้ใน ช่อง std_name std_surname พร้อมกับขึ้นบันทัดให้ใหม่
เอาแบบนี้ครับ (ใช่หรือเปล่ายังงงอยู่)
|
|
|
|
|
Date :
2015-07-25 04:27:05 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
input id="std_id" name="std_id[]" ไว้ใส่รหัส น.ศ จะพิมพ์หรือยิงจากบาร์โค้ด
id="std_name" name="std_name[]" เอาไว้แสดงชื่อ น.ศ
id="std_name" name="std_surname[]" เอาไว้แสดงนามสกุล น.ศ เสร็จแล้วจะเพิ่มแถวใหม่
ตามที่เข้าใจเลยครับ รบกวนด้วยนะครับ
|
|
|
|
|
Date :
2015-07-25 10:32:22 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเอาตัวอย่างนี้ไปดูครับ แล้วประยุกต์เอานะครับ ทดสอบแล้ว
Code (PHP)
<?php
if(isset($_REQUEST['std'])){
$rs = array('firstname'=>'test1', 'lastname'=>'surname1');
exit(json_encode($rs));
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf8">
<script src="/jquery-2.1.1.min.js"></script>
<script>
$(document).ready(function(){
$('#button_add').click(function(){ AddRow(); }).click();
});
function AddRow(){
var tr_id = 'tr_'+($('#myTable tr').length+1);
$("#myTable").append(
'<tr id="'+tr_id+'">'+
'<td><button type="button" > - </button></td>'+
'<td><input class="std_id" name="std_id[]" maxlength="14"></td>'+
'<td><input class="std_name" name="std_name[]"></td>'+
'<td><input class="std_surname" name="std_surname[]"></td>'+
'</tr>'
);
$('#'+tr_id +' button').click(function(){
if($("#myTable tr").length>1) $('#'+tr_id).remove();
});
$('#'+tr_id +' .std_id').change(function() {
var ux=''; //"autofill-std.php";
var ro = { std: this.value};
$.ajax({ url: ux, type: "POST", data: ro}).done(function(result){
var obj; try{ obj = JSON.parse(result); }catch(e){ obj='';}
if(typeof obj=='object'){
$('#'+tr_id+' .std_name').val(obj.firstname);
$('#'+tr_id+' .std_surname').val(obj.lastname);
if($('#'+tr_id).index()==($('#myTable tr').length-1)) AddRow();
}else alert( result);
}).fail(function(){ alert('Cannot find ' + ro.std); });
}).keypress(function(e) {
if( this.value.length==14){ $(this).change(); return false; }
}).focus();
$('#memtotal').val( $("#myTable tr").length );
};
</script>
</head>
<body>
<table id="myTable" boder=2 cellpadding=2 cellspacing=2></table>
<button type="button" id="button_add"> + </button>
<input id="memtotal" readonly >
</body>
</html>
|
|
|
|
|
Date :
2015-07-25 12:48:21 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|