簡體   English   中英

在PHP中使用標簽選擇操作

[英]Operations with tag select in PHP

怎么樣,我嘗試執行一個簡單的操作(加,減或乘)。 99 + 5 = 104表格

<select> + <input> = result

在輸入標簽之間沒有問題,問題是當我有一個要從BD中選擇的數字列表時。

在BD中,以下數據可用。 如您所見,折扣與您的ID不符。

Id discount
1   100
2   99
3   98
4   96
5   95

如果要執行操作,在列出折扣時,標簽

<option value = "<? PHP echo ''. $ row ['id'];?>"> <? PHP echo ''. $ row ['discount'];?> </ option>

該操作通過id而不是折扣完成。 一個總和的示例,我們選擇99的折扣,然后將5的金額插入正確的結果= 104。

問題在於,在操作時,而不是99時,其ID的值= 2,因此2 + 5 = 7。

我在執行操作時的問題是,我可以使用折扣值而不是ID。

<html>
<head>
<script language='javascript'>
function fadd(){
 n1=document.f1.cveDiscount.value;
 n2=document.f1.amount.value;
res=document.f1.resul.value;
res=parseInt(n1)+parseInt(n2);
document.f1.resul.value=res;

}
</script>
</head>
<body>
  <form name='f1' action="" method=POST>
  <label name=lblnum1>Num 1:</label>
  <select name="cveDiscount" class="form-control ">
    <?PHP

    if ($resultado = $mysqli->query("SELECT id,discount FROM discount  order by id desc", MYSQLI_USE_RESULT)) {

      while ($row = mysqli_fetch_array($resultado)){
        ?>
        <tr>
          <option value="<?PHP echo ''.$row['id'];?>"><?PHP echo ''.$row['discount'];?></option>
        </tr>
        <?PHP
      }
    }
    ?>
    <option value="#" selected>Select discount</option>
  </select>

  <label name=lblnum2>Num 2:</label>
  <input type=text name='amount'/>

  <input type=button value="   =   " onclick="fadd()">

  <input type=text name='resul'/>

</form>
</body>
</html>

您可以使用:

selectedOptions :...包含當前選中的元素中包含的元素的列表。 所選選項的列表是一個HTMLCollection對象,每個當前所選選項都有一個條目。

因此,您可以從以下位置進行更改:

n1=document.f1.cveDiscount.value;

至:

n1 = document.f1.cveDiscount.selectedOptions[0].textContent;

無論如何,我建議在dom ready時使用.addEventListener()而不是內聯事件處理程序。

片段:

 document.addEventListener('DOMContentLoaded', function(e) { document.querySelector('[type=button]').addEventListener('click', function(e) { n1 = document.f1.cveDiscount.selectedOptions[0].textContent; n2 = document.f1.amount.value; res = document.f1.resul.value; res = parseInt(n1) + parseInt(n2); document.f1.resul.value = res; }) }) 
 <form name='f1' action="" method=POST> <label name=lblnum1>Num 1:</label> <select name="cveDiscount" class="form-control "> <option value="1">100</option> <option value="2">99</option> <option value="3">98</option> <option value="4">96</option> <option value="5">95</option> <option value="#" selected>Select discount</option> </select> <label name=lblnum2>Num 2:</label> <input type=text name='amount'/> <input type=button value=" = "> <input type=text name='resul'/> </form> 

只需更改帶有discount option內的價值

<option value="<?PHP echo ''.$row['discount'];?>"><?PHP echo ''.$row['discount'];?></option>

這樣,您可以輕松地將discount作為值而不是其id傳遞

如果出於某種原因需要將這些id值保留在其中,則稍微更改javascript還可以讓您使用select標記選項中的文本:

var sel = document.f1.cveDiscount;
var n1 = sel.options[sel.selectedIndex].text;

這將返回預期的結果。

當前,您正在UI中顯示Discount的值,但實際上是傳遞id作為添加值。 只需從查詢中獲取折扣並將其作為值放入您的選項標簽中,如下所示:

<select name="cveDiscount" class="form-control ">
    <?PHP

    if ($resultado = $mysqli->query("SELECT discount FROM discount  order by id desc", MYSQLI_USE_RESULT)) {

      while ($row = mysqli_fetch_array($resultado)){
        ?>
        <tr>
          <option value="<?PHP echo ''.$row['discount'];?>"><?PHP echo ''.$row['discount'];?></option>
        </tr>
        <?PHP
      }
    }
    ?>
    <option value="#" selected>Select discount</option>
  </select>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM