如何将 return php 变量转换为 Jquery 函数以用于乘法值

how to return php variable to Jquery function to be used to multiply values

尝试让多个复选框相乘并在有多个产品的地方相加。是否可以在 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>

我有一个产品列表,每个产品都有每日总计和总天数,每个产品的价格完全不同。我尝试在 fiddle 中创建它并且它可以在不使用变量的情况下找到它,我意识到 Jquery 和 php 的用途不同,我不确定如何工作围绕这个。

正如 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");