为了账号安全,请及时绑定邮箱和手机立即绑定

如何对从数据库中检索到的下拉列表中选择的商品的价格求和

如何对从数据库中检索到的下拉列表中选择的商品的价格求和

慕的地8271018 2023-11-02 17:13:33
我试图在下拉列表中选择一个项目后对价格进行求和,但它只显示 NaN。下拉列表的值是从 MySQL 数据库检索的<?php    //database connection here?>    <table border=" 1">        <thead>            <tr>                <th>Component</th>                <th>Item Name</th>                <th>Price </th>            </tr>        </thead>        <tbody>            <tr>                <td>CPU</td>                <td>                    <?php                    //Retrieving CPU table                    $query = $conn->query("SELECT * FROM cpu");                    echo '<select  onChange = parseFloat($("#cpuprice").val($(this).find("option:selected").attr("cpuprice")))>';                    echo "<option>---select your CPU---</option>";                    while ($obj = $query->fetch_object()) {                        echo '<option cpuprice = "' . $obj->price . '" >' . $obj->cpuname . '</option>';                    }                    echo '</select>';                    ?>                </td>                <td>                    <output class="form-control prc" id="cpuprice" disabled value="">                </td>            </tr>        </tbody>        <tbody>            <tr>                <td>GPU</td>                <td>                    <?php                    //Retrieving GPU table                    $query = $conn->query("SELECT * FROM gpu");                    echo '<select  onChange = parseFloat($("#tpuprice").val($(this).find("option:selected").attr("gpuprice")))>';                    echo "<option>---select your GPU---</option>";                    while ($obj = $query->fetch_object()) {                        echo '<option  gpuprice = "' . $obj->price . '" >' . $obj->gpuname . '</option>';                    }                    echo '</select>';                    ?>                </td>                <td>                    <output class="form-control prc" id="tpuprice" disabled value="">                </td>            </tr>        </tbody>    </table>https://i.stack.imgur.com/zPdnK.png
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

您可以检查是否attr存在 on not inside 选项,因为您的第一个选项没有,attr这就是它给出的原因NaN,所以如果不存在,只需给出 value 0else attr value 。


演示代码:


var total = 0;

$('select').change(function() {

  //get value from cpu slect box check if attr there else take value 0

  var cpu_price = $(".cpu").find('option:selected').attr('cpuprice') ? $(".cpu").find('option:selected').attr('cpuprice') : 0


  $('#cpuprice').val(cpu_price)

  //get value from gpu slect box check if attr there else take value 0

  var gpu_price = $(".gpu").find('option:selected').attr('gpuprice') ? $(".gpu").find('option:selected').attr('gpuprice') : 0

  $('#tpuprice').val(gpu_price)


  total = parseFloat(cpu_price) + parseFloat(gpu_price);

  $('.totalprice').text('₱' + total);

})

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table border=" 1">


  <thead>

    <tr>

      <th>Component</th>

      <th>Item Name</th>

      <th>Price </th>

    </tr>

  </thead>


  <tbody>

    <tr>

      <td>CPU</td>

      <td>

        <select class="cpu">

          <option>---select your CPU---</option>

          <option cpuprice="1222">Soemthing</option>

          <option cpuprice="1000">Soemthing1</option>

        </select>


      </td>

      <td>

        <output class="form-control prc" id="cpuprice" disabled value="" />

      </td>

    </tr>

  </tbody>


  <tbody>

    <tr>

      <td>GPU</td>

      <td>

        <select class="gpu">

          <option>---select your GPU---</option>

          <option gpuprice="1200">Somehingg</option>

          <option gpuprice="120">Somehingg1</option>

        </select>

      </td>

      <td>

        <output class="form-control prc" id="tpuprice" disabled value="" />

      </td>

    </tr>

  </tbody>

</table>

<span class="totalprice">Total: </span>


查看完整回答
反对 回复 2023-11-02
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信