我想总结来自foreach循环内部的所有数据,并使用jquery将其与外部foreach中的值进行比较,但我不知道如何对来自内部foreach的所有数据点进行求和。
以下是观点:
<?php $no = 1;
foreach($data as $value)
{
echo "<b>".$no."</b>";
echo "<br>";
foreach($datas as $values)
{
echo "<input type="number" id="valuea<?= $no ?>" value=".$values['myvalue']." onchange='sum(".$no.");check(".$no.")'>";
}
echo "<input type='text' id='totala"<?= $no ?>"' readonly>";
echo "<input type='text' id='valueb"<?= $no ?>"' readonly value=".$value['myvalue'].">";
}
<button type='button' id='btn'>My Button</button>
这是sum函数:
function sum(id)
{
var a = $('#valuea'+id).val();
var total = sum all a values;
................
$('#totala'+id).val(parseFloat(total));
在对所有2级foreach数据求和之后,验证的工作方式如下:
如果来自内部foreach&gt;的值=外部foreach上的值, 然后按钮显示其他按钮被隐藏
这里是验证jquery:
function check(id)
{
var a= $('#totala'+id).val()
var b =$('#valueb'+id).val();
这是我与逻辑混淆的地方......它应该是:
if (a >= b)
{
$('#btn').show();
}
else
{
$('#btn').hide();
}
}
答案 0 :(得分:0)
我会将每个内部foreach输入放在div
中并给它们一个类,所以总结一下,你可以通过使用each()
函数循环它们的div中的那些来选择它们。另外,为每个输入data-no
添加$no
,这样您就可以轻松地从jquery访问该值。然后,您可以直接在jquery change()
函数内部进行检查和求和。像这样......
<强> PHP 强>:
<?php $no = 1;
foreach($data as $value)
{
echo "<b>".$no."</b>";
echo "<br>";
echo "<div class=\"innerloop\">";
foreach ($datas as $values)
echo "<input type=\"number\" class=\"innerinput\" id=\"valuea".$no."\" data-no=\"".$no."\" value=\"".$values["myvalue"]."\" >";
echo "</div>";
echo "<input type=\"text\" id=\"totala".$no."\" readonly>";
echo "<input type=\"text\" id=\"valueb".$no."\" value=\"".$value['myvalue']."\" readonly>";
}
<button type='button' id='btn'>My Button</button>
...........
<强> JQUERY 强>:
$('input.innerinput').change(function() {
var $innerloop = $(this).parent('div.innerloop');
var no = $(this).data('no');
var total = 0;
$innerloop.children('input.innerinput').each(function() {
total += parseFloat($(this).val());
});
$('input#totala'+no).val(total);
if (total >= $('input#valueb'+no).val())
$('#btn').show();
else
$('#btn').hide();
});
我希望它有所帮助