Javascript 如何从复选框选中的行访问不同的值

Javascript 如何从复选框选中的行访问不同的值,javascript,php,Javascript,Php,我目前有页面逻辑,它依赖于复选框的值标记。希望将不同的数据发送到下一页,但这样做会破坏当前页上的代码 我想发送行号而不是价格。我想将座位值存储到会话数据中,但我不知道如何引用不同列中的数据,因为我只能将一个值绑定到复选框 echo "input type='checkbox' name='check_list[]' value=\"$price;\"; 到 断开下面的“总成本”字段 foreach($res作为$row){ $seat=$row['RowNumber']; $price=$r

我目前有页面逻辑,它依赖于复选框的值标记。希望将不同的数据发送到下一页,但这样做会破坏当前页上的代码

我想发送行号而不是价格。我想将座位值存储到会话数据中,但我不知道如何引用不同列中的数据,因为我只能将一个值绑定到复选框

echo "input type='checkbox' name='check_list[]' value=\"$price;\";

断开下面的“总成本”字段

foreach($res作为$row){
$seat=$row['RowNumber'];
$price=$row['Zone.PriceMultiplier*15.00'];
回声“;
回声“$seat.”;
回声“$price.”;

echo“您遇到了将无关数据从表单传递到服务器的问题

如果你只是发送座位,你应该能够在服务器上查找价格

此外,您不应该以任何方式从表单中发送价格,因为这些数据很容易被篡改

// Form - just send the chosen seats
echo "<td><input type='checkbox' name='check_list[]' value=\"$seat;\" </td>";

// Form processing.
$seats = $_POST['check_list'];

$total = 0;
foreach ($seats as $seat) {
    $total += your_nifty_price_service($seat);
}

您遇到了将无关数据从表单传递到服务器的问题

如果你只是发送座位,你应该能够在服务器上查找价格

此外,您不应该以任何方式从表单中发送价格,因为这些数据很容易被篡改

// Form - just send the chosen seats
echo "<td><input type='checkbox' name='check_list[]' value=\"$seat;\" </td>";

// Form processing.
$seats = $_POST['check_list'];

$total = 0;
foreach ($seats as $seat) {
    $total += your_nifty_price_service($seat);
}

那么,为什么不把行号放在值字段中呢?当然,计算总价是失败的……如果你用其他东西替换读取它们的地方的所有价格。如果你需要行ID作为提交值,那么就把价格存储在其他地方,关键字自定义数据属性。“文本代码feild。”-这不是实际执行计算的代码,这只是添加单击事件处理程序。
updateCost
是从其他地方读取价格所需修改的内容。您能否提供更多关于“从其他地方读取价格”的详细信息。您指的是数组ie array$arr[]=array吗('price'=>$row['Zone.PriceMultiplier*15.00'],'row'=>$row['RowNumber']);那么,为什么不将行号放在值字段中呢?当然,计算总价会失败……如果您将读取它们的位置的所有价格替换为其他内容。如果您需要行ID作为提交值,则将价格存储在其他位置,关键字自定义数据属性。“文本代码feild。”-这不是实际执行计算的代码,这只是添加单击事件处理程序。
updateCost
是从其他地方读取价格所需修改的内容。您能否提供更多关于“从其他地方读取价格”的详细信息。您指的是数组ie array$arr[]=array吗('price'=>$row['Zone.PriceMultiplier*15.00'],'row'=>$row['RowNumber']);因此当通过updateCost(e)更新成本时,我应该使用$seat行数来查找特定seatWell的成本,如果您想使用JS更新总金额,恐怕事情会变得更复杂。您需要使用AJAX从服务器检索金额,然后将textbox的值设置为该值。添加一些代码来说明这一想法。让我知道如果您有任何疑问,那么在通过updateCost(e)更新成本时,我应该使用$seat行数来查找特定seatWell的成本,如果您想使用JS更新总金额,恐怕事情会变得更复杂。您需要使用AJAX从服务器检索金额,然后将textbox的值设置为该值。添加一些代码来说明这一想法。让我知道如果你有问题的话。
echo "<script> function calculateCheckbox() {


  var el = document.getElementById('output');
  var products = el.getElementsByTagName('input');
  var len = products.length;

  for (var i = 0; i < len; i++) {
    if (products[i].type === 'checkbox') {
      products[i].onclick = updateCost;
    }
  }
}
</script>";


echo "<script> function updateCost(e) {

  var myForm = this.form;
  var val = parseFloat(myForm.elements['total-cost'].value);


  if (this.checked) {
    val += parseFloat(this.value);
  } else {
    val -= parseFloat(this.value);
  }

  myForm.elements['total-cost'].value = val} 
</script>";

// Form - just send the chosen seats
echo "<td><input type='checkbox' name='check_list[]' value=\"$seat;\" </td>";

// Form processing.
$seats = $_POST['check_list'];

$total = 0;
foreach ($seats as $seat) {
    $total += your_nifty_price_service($seat);
}
<form ...>
    <input type="text" id="total-price" name="price">

    <input type="checkbox" class="seats" name="check_list[] value="<?php echo $seat; ?>">;
    <input type="checkbox" class="seats" name="check_list[] value="<?php echo $seat; ?>">;

    ...
</form>

<script>
    $('#calculate-price').click(function() {

        $.ajax({
            url: "your-form-processor.php",
            type: "post",
            data: $('.seats:checked').serialize(),
            success: function(data) {
                $("#total-price").val(data);
            }
        });
    });
</script>
// Check this is a POST request & do validation
// ...

$seats = $_POST['check_list'];

$total = 0;
foreach ($seats as $seat) {
    $total += your_nifty_price_service($seat);
}
return $total;