Que diriez-vous, j'essaie d'effectuer une opération simple (addition, soustraction ou multiplication).
99 + 5 = 104
Formulaire 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> 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>
4 Réponses :
juste changer de valeur dans de cette façon, vous pouvez facilement transmettre le rabais option code> avec réduction code> > En tant que valeur au lieu de son ID code> p> p>
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;
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>
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>
Il suffit de récupérer
réduction code> de la requête et mettez-le commevaleur code> dans l'option code> (code> étiquette. Actuellement, il passeid code> commevaleur code> et vous n'avez pas besoin deid code> pour afficher en interface utilisateurRemarque 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 code>. Peut courir dans des bugs étranges difficiles à tracer en faisant cela si vous utilisez les mêmes noms de variables ELESWhere