Php 选择数据库查询生成的列表中的所有复选框
我的逻辑(显然)是错误的,但以下是我的 当一个购买请求被批准后,它会进入到我们的“购买者”名单中,他们开车进城去购买物品(我住在阿拉斯加的农村,所以这是一件大事)。所有项目,无论采购请求如何,都会按供应商转储到foreach循环中。换句话说,可能会有10个购买请求,但所有家得宝项目都在家得宝表中 我想有一个盒子,每个供应商检查“标记所有已购买”,这样当有人离开商店时,他们就可以标记他们得到了所有的家得宝产品 这是我的问题。 1.它并不总是有效的。 2.当它真的起作用时,你只有一次机会。单击它后,必须刷新页面才能再次启动该函数。有人能给我指出正确的方向吗Php 选择数据库查询生成的列表中的所有复选框,php,jquery,Php,Jquery,我的逻辑(显然)是错误的,但以下是我的 当一个购买请求被批准后,它会进入到我们的“购买者”名单中,他们开车进城去购买物品(我住在阿拉斯加的农村,所以这是一件大事)。所有项目,无论采购请求如何,都会按供应商转储到foreach循环中。换句话说,可能会有10个购买请求,但所有家得宝项目都在家得宝表中 我想有一个盒子,每个供应商检查“标记所有已购买”,这样当有人离开商店时,他们就可以标记他们得到了所有的家得宝产品 这是我的问题。 1.它并不总是有效的。 2.当它真的起作用时,你只有一次机会。单击它后,
<?php
$suppliers = [];
$suppliersQ = $db->query("SELECT supplier FROM purchase where status = ? ORDER BY supplier",array('approved'));
$suppliersC = $suppliersQ->count();
//Did we find anything? Get a list of the vendors we need to visit
if($suppliersC > 0){
$suppliersR = $db->results();
foreach ($suppliersR as $key=>$value){
if(!in_array($value,$suppliers)){
array_push($suppliers,$value);
}
}
} else {
}
if(!empty($_POST['purchased'])){
foreach($_POST['purchased'] as $k=>$v){
$fields = array(
'status' => 'purchased',
'purchased_by' => $user->data()->fname." ".$user->data()->lname,
'purchaser_id' => $user->data()->id,
);
$db->update('purchase',$v,$fields);
}
}
if(!empty($_POST['removed'])){
foreach($_POST['removed'] as $k=>$v){
$fields = array(
'status' => 'removed',
'purchased_by' => $user->data()->fname." ".$user->data()->lname,
'purchaser_id' => $user->data()->id,
);
$db->update('purchase',$v,$fields);
}
}
?>
<div id="page-wrapper">
<div class="container-fluid">
<!-- Page Heading -->
<div class="row">
<div class="col-sm-12">
<!-- Content goes here -->
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<h3 align="center"><a href="purchaser_all_pr.php?closed=0">View All PRs</a></h3>
<form class="" action="purchaser.php" name="buildings" method="post">
<input class='btn btn-danger' name="submit" type='submit' value='Submit' class='submit' />
<?php
if($suppliersC > 0){
foreach ($suppliers as $k=>$v){
$purchaseQ = $db->query("SELECT * FROM purchase WHERE status = ? AND supplier = ? ORDER BY will_call,payment",(array('approved',$v->supplier)));
$purchases = $purchaseQ->results();
?>
<div class="table table-responsive">
<table class='table table-hover' >
<h4><?=$v->supplier?>(<a href="purchaser_print.php?vendor=<?=$v->supplier?>">Print</a>)</h4>
<p align="right"><input type="checkbox" id="<?=$v->supplier?>"/> Mark all purchased</p>
<tr>
<th>WC?</th>
<th>Method</th>
<th>Item #</th>
<th>Description</th>
<th>Link</th>
<th>Qty</th>
<th>QtyMin</th>
<th>Price</th>
<th>Est Total</th>
<!-- <th>Actual Total</th> -->
<th>Purchased?</th>
<th>Remove</th>
<th>PR</th>
</tr>
<?php
foreach ($purchases as $purchase){
?>
<tr>
<td><a href="vendor.php?id=<?=$purchase->supplier_id?>"><?=$purchase->will_call?></a></td>
<td><?=$purchase->payment?></td>
<td><?=$purchase->item_num?></td>
<td><?=$purchase->item_desc?></td>
<?php
//Costco show description instead of link
if ($purchase->supplier_id == 10){ ?>
<td><?=$purchase->link?></td>
<?php }else { ?>
<td><a href="<?=$purchase->link?>">Link</td>
<?php } ?>
<td><?=$purchase->qty?></td>
<td><?=$purchase->qty_min?></td>
<td><?=$purchase->price?></td>
<td>$<?=$purchase->est_tot?></td>
<td><input type="checkbox" class="<?=$purchase->supplier_id?>" name="purchased[<?=$purchase->id?>]" value="<?=$purchase->id?>"></td>
<td><input type="checkbox" name="removed[<?=$purchase->id?>]" value="<?=$purchase->id?>"></td>
<td><a href="view_pr.php?prid=<?=$purchase->pr?>">PR-<?=$purchase->pr?></a></td>
</tr>
<SCRIPT language="javascript">
$(function(){
// add multiple select / deselect functionality
$("#<?=$v->supplier?>").click(function () {
$('.<?=$purchase->supplier_id?>').attr('checked', this.checked);
});
// if all checkbox are selected, check the selectall checkbox
// and viceversa
$(".<?=$purchase->supplier_id?>").click(function(){
if($(".<?=$purchase->supplier_id?>").length == $(".<?=$purchase->supplier_id?>:checked").length) {
$("#<?=$v->supplier?>").attr("checked", "checked");
} else {
$("#<?=$v->supplier?>").removeAttr("checked");
}
});
});
</SCRIPT>
<?php
}
}
}
?>
</table>
</div>
</form>
<!-- Content Ends Here -->
</div> <!-- /.col -->
</div> <!-- /.row -->
</div> <!-- /.container -->
</div> <!-- /.wrapper -->
<?php require_once $abs_us_root.$us_url_root.'users/includes/page_footer.php'; // the final html footer copyright row + the external js calls ?>
<!-- Place any per-page javascript here -->
<?php require_once $abs_us_root.$us_url_root.'users/includes/html_footer.php'; // currently just the closing /body and /html ?>
()
不允许我发表评论。我通过循环复选框列表实现了类似的效果。Jquery。大概是这样的:
$(checkboxlist).each(function (){
$(this).prop('checked',true)
});
您可以按照以下方式进行操作:
$(函数(){
//首先选择全部
$('#first.select all')。单击(函数(){
如果($('#first.select all:checked')。长度==0){
$('#第一次输入[type=“checkbox”].option').prop('checked',false);
}
其他的
{
$('#第一次输入[type=“checkbox”].option').prop('checked',true);
}
});
//第二,全选
$('#second.select all')。单击(函数(){
if($('#second.select all:checked')。长度==0){
$('#第二次输入[type=“checkbox”].option').prop('checked',false);
}
其他的
{
$('#第二次输入[type=“checkbox”].option').prop('checked',true);
}
});
//出于您的目的,您可以删除此超时
//我添加它只是为了让你知道它是有效的
setTimeout(函数(){
var options=$(“#second.option”);
var totalcheckbox=options.length;
var=0;
选项。每个(函数(索引){
如果($(this).is(':checked'))
{
选中++;
}
});
如果(总复选框==选中)
{
$('#second.select all').prop('checked',true);
}
}, 2000);
});代码>
选择全部
选项1
选项2
选项3
选项4
选择全部
选项1
选项2
选项3
选项4
您应该使用.prop('checked')…
而不是.attr('checked'…
。这是在jQuery 1.6中更改的。这可能是问题的一部分。我将其更改为prop并删除了prop。仍然不工作。它只是间歇性的。它不会在控制台中抛出任何错误。如果您查看此屏幕截图,它会为顶级供应商(amazon)触发但不是第二个。removeProp实际上会完全删除属性,这将在以后导致问题。要选中框,它是.prop(“选中”,true);
,要取消选中框,它是:.prop(“选中”,false)
我也无法启动它。我想我必须给每个复选框(动态地)提供供应商id,并使用相同的函数来检查所有具有该id的复选框。我只是还没有用javascript思考,所以我需要在我的大脑中解决这个问题。我感谢你的帮助。我会尝试一下。冒犯:)这个项目是建立在UserSpice上的,它肯定没有Laravel那么完美,但是它完成了任务。