สอบถามวิธีเก็บค่า Id="value" ในtable แต่ละแถวลง arrayให้ครบทุกแถวครับ โดยใช้ jquery
ต้องเอาโค้ดตาราง+textbox มาดูครับ
Date :
2013-12-24 11:21:58
By :
sakuraei
แบบนี้ครับ
Code (PHP)
<table>
<tr>
<td><input type="text" id="code" class="id_code" value="1"/></td>
</tr>
<tr>
<td><input type="text" id="code" class="id_code" value="2"/></td>
</tr>
<tr>
<td><input type="text" id="code" class="id_code" value="3"/></td>
</tr>
</table>
โดยการเก็บผมเก็บแบบนี้ครับ
Code (JavaScript)
var data_arr = [];
$('.id_code').each(function(){
var item_arr = $('.id_code').val();
data_arr.push(item_arr);
});
แต่มันได้ค่าที่ลงใน arrayมาแล้วครับ คราวนี้เวลาผมจะPost ส่งค่าไปให้ php ผมจะใช้
$ajax แต่ตอนนี้ต้องการทราบว่าเวลาส่งค่าให้ php โดยส่งค่าที่เป็น arrayไป ต้องตัดเอาค่าที่อยู่ใน arrayมาใช้ยังไงครับ
ประวัติการแก้ไข 2013-12-24 11:34:13
Date :
2013-12-24 11:28:14
By :
kenghockey
Code
<!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" />
<link rel="stylesheet" type="text/css" href="../colorbox-master/colorbox.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script type="text/javascript" src="../colorbox-master/jquery.colorbox-min.js"></script>
<script type="text/javascript">
$(function(){
$("#calbtn").click(function(){
var obj = $("table").eq(0);
var row = obj.find("tr");
var ptarray = 0;
for(i=0;i<row.length;i++){
var txt = row.eq(i).find("input");
if(txt.length>0){
var c1 = txt.eq(0).val();
var c2 = txt.eq(1).val();
var c3 = txt.eq(2).val();
var c4 = parseFloat(c1)+parseFloat(c2)-parseFloat(c3)
txt.eq(3).val(c4);
rowarray[ptarray]['c1']=c1;
rowarray[ptarray]['c2']=c2;
rowarray[ptarray]['c3']=c3;
rowarray[ptarray]['c4']=c4;
console.log(rowarray[ptarray]['c1']+' '+rowarray[ptarray]['c2']+' '+rowarray[ptarray]['c3']+' '+rowarray[ptarray]['c4']+' '+ptarray);
ptarray++;
}
}
});
});
</script>
</head>
<body>
<?php
echo "<table border='1' style='border-collapse:collapse;' width='97%' align='center'>";
echo "<tr height='50' style='font-size:25px;'>";
echo "<th width='30%'>สินค้า</th>";
echo "<th width='10%'>ต้นงวด</th>";
echo "<th width='10%'>ในงวด</th>";
echo "<th width='10%'>ยอดตรวจนับ</th>";
echo "<th width='10%'>ผลลัพธ์</th>";
echo "</tr>";
for($i=1;$i<=10;$i++)
{
echo "<tr height='50' style='font-size:25px;'>";
echo "<td>product$i</td>";
echo "<td align='center'><input type='textbox' name='begin[$i]' value='".rand(0,500)."' size='12' style='text-align:right' maxlength='12' style='height:30' autocomplete='off' OnKeyPress='return chkNumber(this)'></td>";
echo "<td align='center'><input type='textbox' name='buy[$i]' value='".rand(0,500)."' size='12' style='text-align:right' maxlength='12' style='height:30' autocomplete='off' OnKeyPress='return chkNumber(this)'></td>";
echo "<td align='center'><input type='textbox' name='count[$i]' value='".rand(0,500)."' size='12' style='text-align:right' maxlength='12' style='height:30' autocomplete='off' OnKeyPress='return chkNumber(this)'></td>";
echo "<td align='center'><input type='textbox' name='rabuy[$i]' value='' size='12' style='text-align:right' maxlength='12' style='height:30' readonly='true' autocomplete='off' OnKeyPress='return chkNumber(this)' ></td>";
echo "</tr>";
$arr .="[]";
if($i<10){
$arr .=",";
}
}
echo "</table>";
echo '
<script>
var rowarray = ['.$arr.']
</script>
';
?>
<input type="button" value="calculate" id="calbtn" />
</body>
</html>
คือถ้ามันไม่เกี่ยวอะไรผมก็ขอโทษด้วยครับ
ประวัติการแก้ไข 2013-12-24 11:31:06
Date :
2013-12-24 11:30:11
By :
zoceferatu
งานนี้มันจําเป็นต้องส่งค่าทาง ajax ไปให้ serverประมวลผลด้วยครับ
Date :
2013-12-24 11:40:15
By :
kenghockey
ถ้าได้เป็น array แล้วเอาไปใช้โดย foreach เอาก็น่าจะได้แล้วนะครับ
Date :
2013-12-24 13:25:22
By :
Manussawin
ถ้าเกินว่าผมจะดัก event ตอนคลิกที่ input textbox โดยคลิกที่ textbox ที่มีค่า value 1 ก็รับค่า 1 มาแสดง จะทําไงได้บ้างครับ
จากของที่ทํา แต่มันไม่สามารถรับค่าได้ทุกช่องครับมันจะรับได้แค่ช่องแรกครับ
Code (JavaScript)
$('#link').each(function(){
$('#link').click(function(){
var num_tr = $('table tr').length;
var data_arr = [];
for(i = 1; i <= num_tr ; i++){
var item_arr = $('#id_code'+i).val();
data_arr.push(item_arr);
}
console.log(data_arr);
});
})
Code (PHP)
<table>
<tr>
<td><input type="text" id="code1" class="id_code" value="1"/></td>
</tr>
<tr>
<td><input type="text" id="code2" class="id_code" value="2"/></td>
</tr>
<tr>
<td><input type="text" id="code3" class="id_code" value="3"/></td>
</tr>
</table>
Date :
2013-12-25 09:44:39
By :
kenghockey
Code (PHP)
$(function(){
$(".id_code").live('click',function(){
alert($(this).val());
console.log($(this).val());
});
});
ไม่รู้ว่าผมเข้าใจถูกเปล่านะครับ อ่านคำถามงงๆ
ประวัติการแก้ไข 2013-12-25 11:51:33
Date :
2013-12-25 11:51:12
By :
Manussawin
Code (PHP)
var data_arr = [];
$('.id_code').each(function(){
var item_arr = $('.id_code').val();
data_arr.push(item_arr);
});
$.ajax({
url:"...",
type:"POST",
data:{'DATA_ARR[]':data_arr},
success:function(data){
}
});
ใช้ $_POST['DATA_ARR'] รับค่ามันจะได้เป็น array
ประวัติการแก้ไข 2013-12-25 13:31:41
Date :
2013-12-25 13:31:24
By :
Krungsri
ได้แล้วครับ
Code (PHP)
$data = $this->session->set_userdata('code', $data_arrs);
Date :
2013-12-25 17:06:50
By :
kenghockey
ตั้งชื่อแบบ array แล้ว serialize ส่งไปทั้งฟอร์มดีกว่าไหม
Date :
2013-12-25 17:10:55
By :
PlaKriM
ครับเดี๋ยวต้องลองใช้ SerializeArray
แต่ตอนนี้ที่ส่งมันได้แล้วครับติดปัญหาอยู่ตรงที่จะนําค่าที่ได้ไป SELECT WHERE ใน model
ซึ่งค่าที่ส่งไปต้องไป WHERE เพื่อให้มันไม่ SELECT ฟิลด์ ID ที่เป็นค่าที่ส่งไปทั้งครับ
ตอนนี้มัน forไม่ได้ครับ ค่าที่ส่งไปมันส่งไปครบครับตรวจเช็คดูแล้ว
Model
Code (PHP)
SELECT
.............................
FROM
.............................
WHERE
a NOT IN (
SELECT
..................
FROM
..................
WHERE
id = '";
foreach ($data_arrs as $key => $value) {
$sql .= '$value';
}
$sql .= ');
";';
$query = $this->db->query($sql);
return $query->result_array();
ผมต้องการที่จะแสดง Datatables ใน Popup ครับ โดยข้อมูล Datatable ที่ได้จะมีการเปลี่ยนแปลงเมื่อมีการคลิกที่ textbox เพื่อที่จะเรียก Popup ที่มีข้อมูล Datatables นั้นอยู่ครับ
ซึ่งเมื่อคลิกมันจะดึงค่า id ของทุกแถว มาใส่ไว้ใน array แล้วใช้ ajax ส่งค่าไปหา SELECT WHERE ถ้าเป็น ID ที่ส่งไปจะไม่เลือกครับ
Date :
2013-12-25 18:04:08
By :
kenghockey
Date :
2013-12-26 08:30:53
By :
mr.win
Load balance : Server 04