как вернуть переменную php в функцию Jquery для умножения значений - PullRequest
0 голосов
/ 25 июня 2019

Попытка умножить несколько флажков и добавить, где есть несколько продуктов. Можно ли использовать оператор for в JQuery против числа строк в базе данных или он выполняется без него?

Я сократил код, который у меня был, до компактной версии, чтобы добавить флажки и умножить на множитель, равный POST с предыдущей страницы. теперь этот сценарий не будет работать ни для одного из продуктов и для поиска того, что может быть использовано для решения проблемы между клиентской стороной и серверным сценарием. Я запутался в методе, необходимом для использования переменной php в функции jquery. Я думал об использовании 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 голосов
/ 25 июня 2019

Как упомянул 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");
...