0
votes

Opérations avec balise Select in php

Que diriez-vous, j'essaie d'effectuer une opération simple (addition, soustraction ou multiplication). 99 + 5 = 104 Formulaire xxx pré>

entre les balises d'entrée, il n'y a pas de problème, le problème est lorsque j'ai une liste de numéros à sélectionner dans la BD. P>

dans les données suivantes sont disponibles. Comme vous pouvez le constater, les réductions ne correspondent pas à votre identifiant. P> xxx pré>

Si je veux effectuer une opération, au moment de la répertorie des remises, l'étiquette p>

<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>


2 commentaires

Il suffit de récupérer réduction de la requête et mettez-le comme valeur dans l'option (code> étiquette. Actuellement, il passe id comme valeur et vous n'avez pas besoin de id pour afficher en interface utilisateur


Remarque Vous développez une mauvaise habitude de créer des variables globales plutôt que de les déclarer local à l'aide de var, let ou const . Peut courir dans des bugs étranges difficiles à tracer en faisant cela si vous utilisez les mêmes noms de variables ELESWhere


4 Réponses :


1
votes

juste changer de valeur dans option avec réduction xxx

de cette façon, vous pouvez facilement transmettre le rabais > En tant que valeur au lieu de son ID


0 commentaires

1
votes

Modification de votre JavaScript Un Bit vous permettra également d'utiliser le texte à partir des options de sélection de balises, si vous devez conserver ces valeurs d'identification pour une raison quelconque:

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


0 commentaires

1
votes

Actuellement, vous affichez la valeur de réduction code> in ui mais vous passez en réalité id code> comme valeur pour l'addition. Il suffit de récupérer la remise à partir de la requête et de la mettre en valeur dans votre étiquette d'option comme suit:

<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>


0 commentaires

2
votes

Vous pouvez utiliser:

SemensibleOptions : ... contient un Liste des éléments contenus dans l'élément actuellement sélectionné. La liste des options sélectionnées est un objet HTMCollection avec une entrée par option actuellement sélectionnée. P> blockQquote>

Par conséquent, vous pouvez passer de: P>

<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>


0 commentaires