我做了一个foreach来呈现销售优惠券,因此用户可以选择一个并取消该优惠券。他把密码和服务员取消了这笔交易。
问题:在提交时,始终提交最后的表单值。为什么?我猜可能是id或提交按钮名称问题,但当然不知道。测试将id放在表单上,在提交时输入不同的名称等;什么都行不通 因此,如果我将用户密码放在第一个生成的表单上,则密码输入为空。但是,如果我将密码放在最后生成的表单上,输入就可以了!此外,隐藏输入中的值始终来自最后一种形式。我正在为每个偶像使用一个表单和一个提交按钮。所有这些都有相同的属性和输入(可能是问题),但我无法弄明白。 有任何想法吗?两天的工作,直到现在都没有。
Foreach代码:
<?php
$queryCancel = $this->posweb->get_last_transactions($id)->result();
foreach ($queryCancel AS $cupom) {
?>
<?php echo form_open('posweb/operacao'); ?>
<div>
<input type="hidden" name="hdidUser" value="<?php echo $query->idUser ?>"/>
<label>User Password</label>
<input name="pswUser" type="password" class="form-control">
<br>
<button type="submit" class="btnSalvar btn btn-block btn-danger btn-danger-border">
Cancel this coupom
</button>
<input type="hidden" name="operation_type"
value="cancelSale">
</div>
</form>
答案 0 :(得分:0)
没有具体的答案尚未提供帮助,所以我改变了逻辑。
已删除的<form>
代码和内部div不再使用10个表单,而是成为<a>
标记。
那个<a>
标签链接到一个bootstrap模式,我通过data-href将vars从link传递给modal。
将我需要的所有数据放入隐藏的输入中,然后使用用户输入密码提交。
它有效。
查看:
<?php
$queryCancel = $this->posweb->get_last_transactions($id)->result();
foreach ($queryCancel AS $cupom) {
?>
<div>
<a data-href="<?php echo $query->userId ?>" data-valid="<?php echo $query->valid_date ?>" data-idloja="<?php echo $idLoja ?>" data-estab="<?php echo $query->cnpj_loja ?>" data-valor="<?php echo $cupom->valor ?>" data-dtcompra="<?php echo date('d/m/Y', strtotime($cupom->created_at)) ?>" data-toggle="modal" data-target="#cancel-sale" class="btn btn-block btn-danger btn-danger-border" title="Cancelar Venda"><span class="label label-default label-size"><i class="fa fa-check"></i></span></a>
</div>
<?php } ?>
- 莫代尔 -
<div class="modal fade modal-3d-slit" id="cancel-sale" aria-hidden="true"
aria-labelledby="exampleModalTitle" role="dialog" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title"><i class="fa fa-warning" aria-hidden="true"></i> Atenção</h4>
</div>
<?php
echo form_open('posweb/operacao');
?>
<div class="modal-body">
<div class="alert dark alert-alt alert-danger alert-dismissible" role="alert">
<strong>
<span>Ask the customer to enter your password</span>
</strong>
</div>
<label>Customer Password</label>
<input name="pswUser" type="password" class="form-control" />
<br>
<!--button type="submit" class="btnSalvar btn btn-block btn-danger btn-danger-border">
Cancel this Coupom
</button-->
<input type="hidden" class="inputValue" name="hdUser" />
<input type="hidden" class="inputValue2" name="hdvalidDate" />
<input type="hidden" class="inputValue3" name="hdidLoja" />
<input type="hidden" class="inputValue4" name="hdEstab" />
<input type="hidden" class="inputValue5" name="hdValor" />
<input type="hidden" class="inputValue6" name="hdDtCompra" />
<input type="hidden" name="operation_type" value="cancelSale" />
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default margin-0" data-dismiss="modal">Cancelar</button>
<button type="submit" class="btn btn-danger btn-ok">Confirmar</button>
</div>
</div>
</div>
</div>
JavaScript - 将您想要的php变量从点击的<a>
传递给模态:
$('#cancel-sale').on('show.bs.modal', function (e) {
$(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href'));
$('.inputValue').val($(this).find('.btn-ok').attr('href'));
$(this).find('.btn-ok').attr('valid', $(e.relatedTarget).data('valid'));
$('.inputValue2').val($(this).find('.btn-ok').attr('valid'));
$(this).find('.btn-ok').attr('idloja', $(e.relatedTarget).data('idloja'));
$('.inputValue3').val($(this).find('.btn-ok').attr('idloja'));
$(this).find('.btn-ok').attr('estab', $(e.relatedTarget).data('estab'));
$('.inputValue4').val($(this).find('.btn-ok').attr('estab'));
$(this).find('.btn-ok').attr('valor', $(e.relatedTarget).data('valor'));
$('.inputValue5').val($(this).find('.btn-ok').attr('valor'));
$(this).find('.btn-ok').attr('dtcompra', $(e.relatedTarget).data('dtcompra'));
$('.inputValue6').val($(this).find('.btn-ok').attr('dtcompra'));
});
希望帮助有同样问题的人。 我仍然想知道为什么当页面上有多个具有相同元素的表单时,提交的值始终是最后一个表单的值。 如果你知道原因,请告诉我。