สอบถามการหา input
สอบถาม อ.ครับ ผมมีฟอร์มที่จะเก็บเขา DB
<form id="test_form" action="service_add.php">
<? $num_tr=6; //กำหนดแถวใส่ข้อมูล ?>
<table width="100%" border="0" cellspacing="2" cellpadding="3">
<tr>
<td width="34%" align="center" bgcolor="#EAF4FF"><strong>รายการ</b></td>
<td width="10%" align="center" bgcolor="#EAF4FF"><strong>จำนวน</b></td>
<td width="9%" align="center" bgcolor="#EAF4FF"><strong>หน่วย</b></td>
<td width="11%" align="center" bgcolor="#EAF4FF"><strong>ราคา/หน่วย</b></td>
</tr>
<? for($r=1; $r<$num_tr; $r++){?>
<tr id="tr[<?=$r?>]" style=" display:none">
<td align="center"><input name="item_name[<?=$r?>]" type="text" size="70" onkeydown="show_tr(<?=($r+1)?>)"/></td>
<td align="center"><input name="qty[<?=$r?>]" type="text" size="10" onkeypress=check_number(); /></td>
<td align="center"><input name="price[<?=$r?>]" type="text" id="price" size="15" /></td>
<td align="center"><input name="remark[<?=$r?>]" type="text" size="25" /></td>
</tr>
<? } ?>
<tr>
<td colspan="4" align="center">
<input type="submit" name="Submit" id="Submit" value="บันทึกรายการ" class="button" /> <input type="reset" name="Reset" id="button" value="ล้างข้อมูล" class="button" />
</td>
</tr>
</table>
</form>
<script>
show_tr(1);
function show_tr(n)
{
for(var j=1; j<(n+1); j++)
{
if(j<<?=$num_tr?>){
document.getElementById('tr['+j+']').style.display="";
}
}
}
</script>
ขอถามว่าเราจะทราบได้อย่างไรว่าตัวสุดท้ายที่ส่งมาของ item_name ตัวที่เท่าไหร่ เพื่อจะวนลูปแอดลงดาต้าเบสครับ
<input name="item_name[<?=$r?>]" type="text" size="70" onkeydown="show_tr(<?=($r+1)?>)"/>
<form id="test_form" action="service_add.php">
<? $num_tr=6; //กำหนดแถวใส่ข้อมูล ?>
<table width="100%" border="0" cellspacing="2" cellpadding="3">
<tr>
<td width="34%" align="center" bgcolor="#EAF4FF"><strong>รายการ</b></td>
<td width="10%" align="center" bgcolor="#EAF4FF"><strong>จำนวน</b></td>
<td width="9%" align="center" bgcolor="#EAF4FF"><strong>หน่วย</b></td>
<td width="11%" align="center" bgcolor="#EAF4FF"><strong>ราคา/หน่วย</b></td>
</tr>
<? for($r=1; $r<$num_tr; $r++){?>
<tr id="tr[<?=$r?>]" style=" display:none">
<td align="center"><input name="item_name[<?=$r?>]" type="text" size="70" onkeydown="show_tr(<?=($r+1)?>)"/></td>
<td align="center"><input name="qty[<?=$r?>]" type="text" size="10" onkeypress=check_number(); /></td>
<td align="center"><input name="price[<?=$r?>]" type="text" id="price" size="15" /></td>
<td align="center"><input name="remark[<?=$r?>]" type="text" size="25" /></td>
</tr>
<? } ?>
<tr>
<td colspan="4" align="center">
<input type="submit" name="Submit" id="Submit" value="บันทึกรายการ" class="button" /> <input type="reset" name="Reset" id="button" value="ล้างข้อมูล" class="button" />
</td>
</tr>
</table>
</form>
<script>
show_tr(1);
function show_tr(n)
{
for(var j=1; j<(n+1); j++)
{
if(j<<?=$num_tr?>){
document.getElementById('tr['+j+']').style.display="";
}
}
}
</script>
ขอถามว่าเราจะทราบได้อย่างไรว่าตัวสุดท้ายที่ส่งมาของ item_name ตัวที่เท่าไหร่ เพื่อจะวนลูปแอดลงดาต้าเบสครับ
<input name="item_name[<?=$r?>]" type="text" size="70" onkeydown="show_tr(<?=($r+1)?>)"/>
ไม่รู้ว่าจะตอบว่าอะไร งงกับประเด็นของคำถาม
คำตอบแยกออกเป็น 2 ประเด็นครับ ผมให้แนวคิดไปนะ
1.ต้องการหา input อันสุดท้ายด้วย Javascript จริงๆปล้วมันจะหาง่ายถ้ารู้จักประยุต์ใช้คำสั่ง เช่น
<p id=parent><input type=text/><input type=text/><input type=text/></p>
var p = document.getElementById('parent'); // อ่าน p
var inps = p.getElementsByTagName('input'); // อ่าน input ทั้งหมดใน p ผลลัพท์เป็น Array
inps[inps.length - 1].value = 'xxx'; // input ตัวสุดท้าย (Array ตัวสุดท้าย)
2.ต้องการหา input ตัวสุดท้าย เมื่อ submit
เช่นกันครับ ถ้าเราทำ input ให้เป็น Array เราก็สามารถหา input ตัวสุดท้าย ด้วยคำสั่งของ Array ได้เช่นกัน เช่น<p <
<id=parent><input type=text name=text[] /><input type=text name=text[] /><input type=text name=text[] /></p>
เมื่อ submit
$inputs = $_POST['text'];
echo end($inputs);