如何将php变量返回给Jquery函数以用于乘以值

时间:2019-06-24 21:14:20

标签: php jquery variables addition multiplying

尝试使多个复选框相乘,然后在有多个产品的地方添加。是否可以针对数据库中的行数在jquery中使用for语句,或者在没有它的情况下运行它?

我将代码简化为精简版本,以添加复选框并与上一页中的POST乘数相乘。 现在,该脚本将不会在任何产品上运行,并且会徘徊在桥接客户端和服务器端脚本之间的问题上。 我对在jquery函数中使用php变量所需的方法感到困惑。我想到了使用onclick来调用单击复选框的功能,但我试图在DOM上运行它。如果有人可以最简单的方式告诉我这怎么可能,我会很乐意做更多的研究。

<?php
//CONNECTION, QUERY AND MISC ///

$count = mysqli_num_rows($result);
$i = 1;

while ($row = mysqli_fetch_assoc($result)) 
{
    $kilo1 = $row['kilo1'];
    $kilo2 = $row['kilo2'];

    $price1 = $row['price1'];
    $price2 = $row['price2'];
    $price3 = $row['price3'];
    $price4 = $row['price4'];

    $multiplier = 2;
    $qri = "qr"."$i";
    $userdaily = "userdaily"."$i";
    $usertotal = "usertotal"."$i";
    $pricef1 = "price1"."$i";
    $pricef2 = "price2"."$i";

    echo "<form enctype='multipart/form-data' name='contactform' method='POST' action='something.php'>";
    echo "<input type='hidden' name='multiplier' id='multiplier' value='$multiplier'>";
    echo "<input type='checkbox' name='checkbox1' id='$qri' value='$price1'>";
    echo "<input type='checkbox' name='checkbox2' id='$qri' value='$price2'>";
    echo "<input type='checkbox' name='checkbox3' id='$qri' value='$price3' 
                 class='insure'>";
    echo "<input type='checkbox' name='checkbox4' id='$qri' value='$price4' 
                 class='insure'>";
    echo "<input type='checkbox' name='checkbox5' id='$qri' value='$kilo1' 
                 class='kilo'>";
    echo "<input type='checkbox' name='checkbox6' id='$qri' value='$kilo2' 
                 class='kilo'>";

    /////TOTALS VISIBLE AND HIDDEN/////
    echo "<span id='$userdaily'></span>";
    echo "<span id='$usertotal'></span>";
    echo "<input type='hidden' name='pricef1' id='$pricef1' value=''>";
    echo "<input type='hidden' name='pricef2' id='$pricef2' value=''>";
    echo "<input type='submit'>";

    if($i%4==0 || $i == $count) echo '<br>';

    $i++;    
}
?>

<script>
$(function() 
{
  $("input.kilo").change(function() 
  {
    $("input.kilo").not(this).prop("checked", false);
  });

  $("input.insure").change(function() 
  {
    $("input.insure").not(this).prop("checked", false);
  });

  $(document).ready(function() 
  {
    //get the values of the selected options
    var counter = parseInt("<?php echo $count;?>");
    for (i = 1; i <= counter; i++)
    {
      let v = $.map($("input[id^='qr+i+']:checked"), function(t) 
      {
        return parseFloat($(t).val());
      }); 

      let s = v.reduce((a, b) => a + b); 
      //sum them up to a daily total
      console.log(v);

      $("#<?php echo $userdaily;?>").text('R' + s + '/day');    
      $("#<?php echo $usertotal;?>").text('R' + s * 
      parseFloat($("#multiplier").val()) + '/day');
      $("#<?php echo $pricef1;?>").val(s);
      $("#<?php echo $pricef2;?>").val(s * parseFloat($("#multiplier").val()));
    }
  });
});     
</script>

我有一个产品清单,每个清单都有每日总计和天数总计,每种产品的价格完全不同。我试图在一个小提琴中创建它,并且可以在不使用变量的情况下找到它,我意识到Jquery和php的用法有所不同,我不确定如何解决此问题。

1 个答案:

答案 0 :(得分:0)

如treyBake所述,如果您需要将信息从PHP传递到jQuery,再传递回PHP等,请使用隐藏的DOM元素并发出Ajax请求。

这也将允许您实时更新数据。

好的,例如,您可以将数字计数隐藏在隐藏的输入中

<input type="hidden" value="<?php echo $count;?> " name="countrows" id="countrows"> 

现在您可以在jQuery中检索:

var counter = $("#countrows").val();

通过is.checked获取选中复选框的值:

var x = $("#checkbox").is(":checked");