|
|
|
ผมมีปัญหาเรื่องการแก้ไขข้อมูล php โดยมี js มาเกี่ยวข้องครับ |
|
|
|
|
|
|
|
ผมเจอปัญหาเรืองการแก้ไขข้อมูลทีละหลายๆคน
จากภาพที่ 1
จะเห็นว่า ข้อมูลลำดับที่ 1 สามารถแก้ไขแล้วผ่านการตรวจสอบจาก js ได้
จากภาพที่ 2
จะเห็นว่า ข้อมูลลำดับที่ 2 ไม่สามารถแก้ไข โดยตรวจสอบจาก js ได้
สาเหตุเพราะ js ไม่ได้รับค่าตัวแปล $i ของลำดับข้อมูล (ผมเข้าใจถูกมั๊ย)
ผมเลยอยากทราบว่า จะทำอย่างไรให้ js ระบุตำแหน่ง $i ของข้อมูลได้บ้างครับ
หรือว่าพี่ๆ มีวิธีอื่นแนะนำรึเปล่าครับ
ขอโทษทีรบกวนนะครับ
Code (PHP)
<body>
<div class="art-box art-sheet">
<div class="art-box-body art-sheet-body" style="min-height:445px">
<h2 class="art-postheader">เวลาเข้าเรียนของนักศึกษา</h2>
<?php if($_GET["Action"] == "Save")
{
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
$strSQL = "UPDATE toeic_sco SET ";
$strSQL .="LISTEN_SCO = '".$_POST["listen_sco$i"]."' ";
$strSQL .=",READ_SCO = '".$_POST["read_sco$i"]."' ";
$strSQL .=",SCORE = '".$_POST["score$i"]."' ";
$strSQL .=",T_TYPE = '".$array_tc_back[$_POST["t_type$i"]]."' ";
$strSQL .="WHERE TOEIC_ID = '".$_POST["toeic_id$i"]."'";
//print_r($strSQL); exit();
$query_sql_toeic = $db->query($strSQL);
$str_time = "UPDATE toeic SET ";
$str_time .="STU_TIME = '".$_POST["stu_time$i"]."' ";
$str_time .="WHERE TOEIC_ID = '".$_POST["toeic_id$i"]."' ";
$query_sql_time = $db->query($str_time);
}echo "<script>alert('บันทึกข้อมูลเรียบร้อย');window.location.href='admin_show_sco_toeic.php?id_learn=$id_learn';</script>";
}
?>
<?php
$sql_toeic = " SELECT c.STUDENT_ID,f.PRENAME_NAME,c.FIRST_NAME_TH,c.LAST_NAME_TH,
d.PROGRAM_SHORT,g.STU_TIME,h.LISTEN_SCO,h.READ_SCO,h.SCORE,c.STATUS_TOEIC,
h.T_TYPE,j.TOEIC_SCORE,g.TOEIC_ID
FROM reg_study a
LEFT JOIN colearning b ON a.id_learn = b.id_learn
LEFT JOIN user c ON a.UID = c.UID
LEFT JOIN program d ON c.PROGRAM_ID = d.PROGRAM_ID
LEFT JOIN faculty e ON d.FACULTY_ID = e.FACULTY_ID
LEFT JOIN prename f ON c.PRENAME_ID = f.PRENAME_ID
LEFT JOIN toeic g ON c.UID = g.UID
LEFT JOIN toeic_sco h ON g.TOEIC_ID = h.TOEIC_ID
LEFT JOIN groups i ON c.UID = i.UID
LEFT JOIN student_group j ON i.STUDENT_GROUP_ID = j.STUDENT_GROUP_ID
where a.id_learn ='".$id_learn."' ORDER BY c.STUDENT_ID ASC ";
$query_sql_toeic = $db->query($sql_toeic);
$i=0;
$j=1;
?>
<form id="form1" method="post" action="admin_edit_show_sco_toeic.php?Action=Save">
<input type="hidden" id="process" name="process" value="<?php echo $process; ?>">
<input type="hidden" id="id_learn" name="id_learn" value="<?php echo $id_learn; ?>">
<input type="hidden" id="check_type" name="check_type" value="<?php echo $rec_toeic["TOEIC_SCORE"] ?>">
<table width="90%" border="0" align="center">
<tr class="head_ex">
<th width="5%" align="center">ลำดับ</td>
<th width="13%" align="center">รหัสนักศึกษา</td>
<th width="20%" align="center" colspan="3">ชื่อ - สกุล</td>
<th width="10%" align="center">สาขาวิชา</td>
<th width="10%" align="center">ทักษะการฟัง</td>
<th width="10%" align="center">ทักษะการอ่าน</td>
<th width="7%" align="center">มาเรียน</td>
<th width="10%" align="center">รวม</td>
<th width="7%" align="center">สถานะ</td>
</tr>
<?php while($rec_toeic = $query_sql_toeic->fetch()){
$i = $i + 1;
$bg++;
$bgcolor = ( ($bg%2)==0 )? "#ffffff" : "#EEEEEE" ;
?>
<style>
#tr1:hover {background-color: #F90;}
</style>
<input type="hidden" id="check_type" name="check_type" value="<?php echo $rec_toeic["TOEIC_SCORE"]; ?>">
<input type="hidden" id="check_i" name="check_i" value="<?php echo $i; ?>">
<input type="hidden" id="check_t" name="check_t" value=""/>
<?php
$data = $i;
echo '<script type="text/javascript">';
echo "var data = '$data';";
echo '</script>';
?>
<script type="text/javascript">
$(document).ready(function(){
$("#listen_sco,#read_sco,#stu_time,#check_type").keyup(function(){
if(isNaN($("#listen_sco").val()))
{
alert('กรอกทักษะการฟังเป็นตัวเลขเท่านั้น');
$("#listen_sco").val('');
}
if(isNaN($("#read_sco").val()))
{
alert('กรอกทักษะการอ่านเป็นตัวเลขเท่านั้น');
$("#read_sco").val('');
}
if(isNaN($("#stu_time").val()))
{
alert('กรอกทักษะการเข้าเรียนเป็นตัวเลขเท่านั้นr');
$("#stu_time").val('');
}
if($("#listen_sco").val()==''){
var listen_sco = 0;
}
else{
var listen_sco = parseInt($("#listen_sco").val());
}
if($("#read_sco").val()==''){
var read_sco = 0;
}
else{
var read_sco = parseInt($("#read_sco").val());
}
if($("#stu_time").val()==''){
var stu_time = 0;
}
else{
var stu_time = parseInt($("#stu_time").val());
}
$("#score").val(listen_sco+read_sco+stu_time);
if($("#score").val()>=$("#check_type").val){
}
});
});
</script>
<tr id="tr1" class="font_ex" bgcolor="<?php echo $bgcolor ;?>">
<td align="center">
<input type="hidden" name="toeic_id<?php echo $i;?>" size="5" value="<?php echo $rec_toeic["TOEIC_ID"];?>"><?php echo $j;?></td>
<td align="center"><?php echo $rec_toeic["STUDENT_ID"];?></td>
<td><?php echo $rec_toeic["PRENAME_NAME"];?></td>
<td><?php echo $rec_toeic["FIRST_NAME_TH"];?></td>
<td><?php echo $rec_toeic["LAST_NAME_TH"];?></td>
<td align="center"><?php echo $rec_toeic["PROGRAM_SHORT"];?></td>
<td align="center">
<input type="text" name="listen_sco<?php echo $i;?>" id="listen_sco" size="9" value="<?php echo $rec_toeic["LISTEN_SCO"];?>">
</td>
<td align="center">
<input type="text" name="read_sco<?php echo $i;?>" id="read_sco" size="9" value="<?php echo $rec_toeic["READ_SCO"];?>"></td>
<td align="center">
<input type="text" name="stu_time<?php echo $i;?>" id="stu_time" size="9" value="<?php echo $rec_toeic["STU_TIME"];?>"></td>
<td align="center">
<input type="text" readonly name="score<?php echo $i;?>" id="score" size="9" value="<?php echo $sum_sco = $rec_toeic["LISTEN_SCO"]+$rec_toeic["READ_SCO"]+$rec_toeic["STU_TIME"]?>">
</td>
<td align="center">
<input type="text" readonly name="t_type<?php echo $i;?>" id="t_type" size="9" value="<?php echo $array_tc[$rec_toeic["T_TYPE"]]; ?>"></td>
</tr>
<?php $j++;
} ?>
</table>
<div align="center" style="margin-top:5px;margin-bottom:5px">
<input type="submit" id="button" name="button" value="ตกลง" class="buttonn small green rounded" style="width:80px">
<input type="hidden" name="hdnLine" value="<?php echo $i;?>">
<input type="button" id="button" name="button" value="ยกเลิก" onClick="window.location.href = 'admin_sco.php?page=0'" class="buttonn small red rounded">
</div>
</form>
</div>
</div>
</body>
Tag : PHP, JavaScript
|
ประวัติการแก้ไข 2014-10-22 19:29:33
|
|
|
|
|
Date :
2014-10-22 19:28:50 |
By :
por-jr |
View :
774 |
Reply :
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอา class inputScore ไปใส่ไว้ที่ textbox กรอกคะแนน
จากนั้นเอา script นี้ไปใส่ ผม พิมสดนะไม่ได้ ลอง
Code (JavaScript)
$('.inputScore').keyup(function(){
sum = 0;
$(this).parentsUntil('tr').parent().find('.inputScore').each(function(){
sum += $(this).val();
});
$(this).psrentsUntil('tr').parent().find('#score').val(sum )
});
|
|
|
|
|
Date :
2014-10-22 20:06:05 |
By :
gaowteen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ไม่ได้ยังไงครับลองทำแบบ pattern ข้างล่างดูนะครัาบ
ใช้ไม่ได้ครับพี่ ข้างล่างนี้เป็นcodeที่ผมแก้ไขแล้ว
Code (PHP)
// ตัวอยา่งโค๊ดที่ผมแก้ไขแล้ว
|
|
|
|
|
Date :
2014-10-24 07:45:08 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (JavaScript)
<script>
$(document).ready(function() {
$('.inputScore').keyup(function () {
sum = 0;
$(this).parentsUntil('tr').parent().find('.inputScore').each(function () {
sum += $(this).val() * 1;
});
$(this).parentsUntil('tr').parent().find('#score').val(sum)
});
})
</script>
Code (PHP)
<td align="center">
<input type="text" class="inputScore" name="listen_sco<?php echo $i;?>" id="listen_sco" size="9" value="<?php echo $rec_toeic["LISTEN_SCO"];?>">
</td>
<td align="center">
<input type="text" class="inputScore" name="read_sco<?php echo $i;?>" id="read_sco" size="9" value="<?php echo $rec_toeic["READ_SCO"];?>"></td>
<td align="center">
<input type="text" class="inputScore" name="stu_time<?php echo $i;?>" id="stu_time" size="9" value="<?php echo $rec_toeic["STU_TIME"];?>"></td>
|
ประวัติการแก้ไข 2014-10-24 09:19:50 2014-10-24 09:20:15
|
|
|
|
Date :
2014-10-24 09:18:59 |
By :
gaowteen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค๊าบบบบบ __-/|\-__
|
|
|
|
|
Date :
2014-10-25 14:09:02 |
By :
por-jr |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าผมต้องการเอาผลรวม (id="score") มาคำนวณหาว่าผ่าน หรือ ไม่ผ่าน โดย
<input type="hidden" id="check_score" name="check_score" value="<?php echo $rec_toeic["TOEIC_SCORE"]; ?>">
เก็บคะแนนที่ผ่านเกณฑ์ของแต่ละคน โดย (id="score") >= (id="check_score") ถ้าจริง 1 ไม่จริง 0 แล้วแสดงที่ id="t_type"
รบกวนหน่อยนะครับ T^T มึนจริงๆ
Code (PHP)
<form id="form1" method="post" action="admin_edit_show_sco_toeic.php?Action=Save">
<input type="hidden" id="process" name="process" value="<?php echo $process; ?>">
<input type="hidden" id="id_learn" name="id_learn" value="<?php echo $id_learn; ?>">
<table width="90%" border="0" align="center">
<tr class="head_ex">
<th width="5%" align="center">ลำดับ</td>
<th width="13%" align="center">รหัสนักศึกษา</td>
<th width="20%" align="center" colspan="3">ชื่อ - สกุล</td>
<th width="10%" align="center">สาขาวิชา</td>
<th width="10%" align="center">ทักษะการฟัง</td>
<th width="10%" align="center">ทักษะการอ่าน</td>
<th width="7%" align="center">มาเรียน</td>
<th width="10%" align="center">รวม</td>
<th width="7%" align="center">สถานะ</td>
</tr>
<?php while($rec_toeic = $query_sql_toeic->fetch()){
$i = $i + 1;
$bg++;
$bgcolor = ( ($bg%2)==0 )? "#ffffff" : "#EEEEEE" ;
?>
<style>
#tr1:hover {background-color: #F90;}
</style>
<input type="hidden" id="check_score" name="check_score" value="<?php echo $rec_toeic["TOEIC_SCORE"]; ?>">
<input type="hidden" id="check_i" name="check_i" value="<?php echo $i; ?>">
<script>
$(document).ready(function() {
$('.inputScore').keyup(function () {
sum = 0;
$(this).parentsUntil('tr').parent().find('.inputScore').each(function () {
sum += $(this).val() * 1;
//sum2 = sum/2;
});
$(this).parentsUntil('tr').parent().find('#score').val(sum)
});
})
</script>
<tr id="tr1" class="font_ex" bgcolor="<?php echo $bgcolor ;?>">
<td align="center">
<input type="hidden" name="toeic_id<?php echo $i;?>" size="5" value="<?php echo $rec_toeic["TOEIC_ID"];?>"><?php echo $j;?></td>
<td align="center"><?php echo $rec_toeic["STUDENT_ID"];?></td>
<td><?php echo $rec_toeic["PRENAME_NAME"];?></td>
<td><?php echo $rec_toeic["FIRST_NAME_TH"];?></td>
<td><?php echo $rec_toeic["LAST_NAME_TH"];?></td>
<td align="center"><?php echo $rec_toeic["PROGRAM_SHORT"];?></td>
<td align="center">
<input type="text" class="inputScore" name="listen_sco<?php echo $i;?>" id="listen_sco" size="9" value="<?php echo $rec_toeic["LISTEN_SCO"];?>" onKeyUp="check_numbern(this.value,this);">
</td>
<td align="center">
<input type="text" class="inputScore" name="read_sco<?php echo $i;?>" id="read_sco" size="9" value="<?php echo $rec_toeic["READ_SCO"];?>" onKeyUp="check_numbern(this.value,this);"></td>
<td align="center">
<input type="text" class="inputScore" name="stu_time<?php echo $i;?>" id="stu_time" size="9" value="<?php echo $rec_toeic["STU_TIME"];?>" onKeyUp="check_numbern(this.value,this);"></td>
<td align="center">
<input type="text" readonly name="score<?php echo $i;?>" id="score" size="9" value="">
</td>
<td align="center">
<input type="text" readonly name="t_type<?php echo $i;?>" id="t_type" size="9" value=""></td>
</tr>
<?php $j++;
} ?>
</table>
<div align="center" style="margin-top:5px;margin-bottom:5px">
<input type="submit" id="button" name="button" value="ตกลง" class="buttonn small green rounded" style="width:80px">
<input type="hidden" name="hdnLine" value="<?php echo $i;?>">
<input type="button" id="button" name="button" value="ยกเลิก" onClick="window.location.href = 'admin_sco.php?page=0'" class="buttonn small red rounded">
</div>
</form>
|
ประวัติการแก้ไข 2014-10-25 16:57:57
|
|
|
|
Date :
2014-10-25 16:49:45 |
By :
por-jr |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (JavaScript)
<script>
$(document).ready(function() {
$('.inputScore').change(function () {
sum = 0;
var tr=$(this).parentsUntil('tr');
$(tr)
.find('.inputScore').each(function(index, element) { sum += parseInt($(element).val());})
.find('.score').val(sum)
.find('.t_type').val( (sum>=parseInt($('#check_score').val())? 1 : 0 ));
});
})
</script>
แล้วเอาไปไหว ก่อน <body> ก็จะดีนะครับ พยายาม แยกโค๊ด
PHP html javascript แยกจากกันให้ัชัดเจนก็จะอ่านและเข้าใจง่ายนะครับ
ปล. เดิมใช้ keyup มันก็พอได้อยู่หรอกครับ แตมันทำทุกครั้งที่คีย์ตัวเลขแต่ละตัว ไม่เหมาะที่จะทำหรอกครับ
ลองดูเองนะครับ ไม่ได้ลองครับ
|
ประวัติการแก้ไข 2014-10-25 18:47:50
|
|
|
|
Date :
2014-10-25 18:43:01 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วค๊าบบบ ขอบคุณมากครับผม งมจนเจอ
Code (PHP)
<script>
$(document).ready(function() {
$('.inputScore').keyup(function () {
sum = 0;
var tr=$(this).parentsUntil('tr');
$(this).parentsUntil('tr').parent().find('.inputScore').each(function(index, element) {
sum += ($(element).val()*1);
})
$(this).parentsUntil('tr').parent().find('#score').val(sum)
$(this).parentsUntil('tr').parent().find('#t_type').val( (sum>=parseInt($(this).parentsUntil('tr').parent().find('#check_score').val())? 1 : 0 ));
});
})
</script>
|
ประวัติการแก้ไข 2014-10-25 19:30:03 2014-10-25 19:30:55
|
|
|
|
Date :
2014-10-25 19:23:23 |
By :
por-jr |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค๊ดใหม่ คีย์เสร็จให้กด enter เพื่อ ให้เกิด event change
|
|
|
|
|
Date :
2014-10-25 20:30:11 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|