我想只通过复选框,所有文本框和数据库数组中的复选框来获取文本框值。
<tr><?php foreach($arrbook as $book) { ?>
<td><input type="checkbox" name="book" class="book" value="<?php echo $book['id_book']; ?>"/> <?php echo $book['name_book'];?></td>
<td><input type="text" name="bookprice"class="bookprice" value="<?php echo $book['book_price']; ?>"/</td>
<?php } ?></tr>
<td><div class="button"><a href="#" onClick="submitbookdata();">Save !</a></div></td></tr>
JS
<script>
function submitbookdata() {
var bookidArr = [];
var bookpriceArr = [];
$('.book').each(function() {
if (this.checked) {
var current = $(this).val();
$(this).parents("tr").find(".bookprice").each(function)(index, n) {
if ($.each('n').val() == current) {
bookpriceArr.push(this.value);
}
});
}
bookidArr.push($(this).val());
});
alert(bookpriceArr);
}
</script>
新问题,但几乎与旧问题相同,问题是,在我的数组PHP代码中,我尝试划分为3个单元格,当我尝试获取文本框值时,同一行中的所有值文本框都是相同的值。所以这是问题代码:
<?php $cell_index = 1; foreach($arrbook as $book)
{
if ($cell_index == 1)
{
<tr>
}
<td>
<td><input type="checkbox" name="book" class="book" value="<?php echo $book['id_book']; ?>"/> <?php echo $book['name_book'];?></td>
<td><input type="text" name="bookprice"class="bookprice" value="<?php echo $book['book_price']; ?>"/</td>
<?php echo "\n";?>
<?php if ( ++$cell_index > 3 )
{ ?>
</tr>
<?php echo "\n"; $cell_index = 1; } ?>
<?php } ?>
Jquery和你Guru的最后一个jquery建议是一样的。现在有关于jquery过程的任何建议吗?感谢。
html代码可能就像这个伙伴:
<table>
<tr>
<th>COLUMN 1</th>
<th>COLUMN 2</th>
<th>COLUMN 3</th>
<th>COLUMN 4</th>
</tr>
<tr>
<td><input type="checkbox" name="book" class="book" value="Checkbox 1"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 2"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 3"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
</tr>
<tr>
<td><input type="checkbox" name="book" class="book" value="Checkbox 4"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="300"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 5"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 6"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
</tr>
<tr>
<td><input type="checkbox" name="book" class="book" value="Checkbox 7"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="400"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 8"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="400"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 9"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="400"/></td>
</tr>
<tr>
<td><div class="button"><a href="#" onClick="submitbookdata();">Save !</a></div></td>
</tr>
</table>
答案 0 :(得分:2)
您不需要遍历每个textbox
,因为每个textbox
中只有一个checkbox
和tr
。当您检查每个checked
的{{1}}属性时,如果选中该属性,请获取与其关联的checkbox
值,如下所示:
<强> DEMO 强>
textbox
<强>更新强>
像这样获取function submitbookdata() {
var bookidArr = [];
var bookpriceArr = [];
$('.book').each(function() {
if ($(this).is(':checked')) {// check the checked property with .is
var current = $(this).val();
bookpriceArr.push($(this).parents("tr").find(".bookprice").val()) //get the input textbox associated with it
}
bookidArr.push($(this).val());
});
alert(bookpriceArr);
}
的值:
textbox
它将遍历bookpriceArr.push($(this).parents("td").next().find(".bookprice").val())
的父td
,然后找到父checkbox
的下一个element
女巫td
,其中包含td
在这种情况下,然后找到textbox
,其中包含类textbox
。现在您必须要小心,.bookprice
的父element
与其对应的td
td
>