问题是当我在表中添加一行时,它不再计算数字的乘积,而仅看到第一行...我不知道如何解决。也许我需要柜台或如何?请帮助我。
这是我的html代码
<style type="text/css">
form{
margin: 20px 0;
text-align:center;
}
.add-row{
background-color: #76a6f2;
}
.delete-row{
background-color: #f45a6f;
}
form input, button{
padding: 5px;
}
table{
width: 100%;
margin-bottom: 20px;
border-collapse: collapse;
}
table, th, td{
border: 1px solid #cdcdcd;
border-collapse: collapse;
}
table th, table td{
padding: 5px;
text-align: center;
}
#valider,button{
width:10%;
border-radius: 10px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="POST" action="">
<hr><br><br>
<button type="button" id="valider">Valider</button>
<button type="button" name="bouton" value="Add Row" class="add-row">Add row</button>
<button type="button" class="delete-row">Delete Row</button><br><br><hr><br><br>
<table>
<thead>
<tr>
<th>Select</th>
<th>Quantité</th>
<th>Désignation</th>
<th>Prix Unitaire</th>
<th>Prix taxé</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" name="record" ></td>
<td><input type="text" name="quantite" placeholder="quantité" id="quantite"></td>
<td><select type='text' id='designation' name="designation">
<option>Stylo</option>
<option>Cahier</option>
<option>Souris</option>
<option>Clavier</option>
</select>
<td><input type="text" name="prix unitaire" placeholder="prix unitaire" id="prix unitaire"></td>
<td><span id="pt"></span></td>
</tr>
</tbody>
</table>
</form>
这是我的javascript代码//我是初次登台的人
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
var i=1;
$(document).ready(function(){
//ajoute les lignes
$(".add-row").click(function(){
var qte= document.getElementById('quantite').value;
var pu= document.getElementById('prix unitaire').value;
var pt= parseInt(qte) * parseInt(pu);
document.getElementById('pt').innerHTML = pt;
//alert(pt);
var markup = "<tr><td><input type='checkbox' name='record'></td><td><input type='text' name='quantite' placeholder='quantité' id='quantite'></td><td><select type='text' id='designation' name='designation'><option>Stylo</option><option>Cahier</option><option>Souris</option><option>Clavier</option></select><td><input type='text' name='prix unitaire' placeholder='prix unitaire' id='prix unitaire'></td><td><span id='pt'></span></td></tr>";
$("table tbody").append(markup);
i++;
});
// Cherche et enleve les lignes selectionnees
$(".delete-row").click(function(){
$("table tbody").find('input[name="record"]').each(function(){
if($(this).is(":checked")){
$(this).parents("tr").remove();
}
});
i--;
});
//Effectuer les calculs
$("#valider").click(function(){
var qte= document.getElementById('quantité').value
var pu= document.getElementById('prix unitaire').value
var pt= parseInt(qte) * parseInt(pu);
$("table tbody ").append();
});
});
</script>
这是输出的样子
答案 0 :(得分:1)
我重写了您的html和js。下面只显示add-row
处理程序,因为您没有提及其他两个按钮的确切含义。
关于未来的一些注意事项:
希望这会有所帮助。
prix unitaire
var i=1;
$(document).ready(function() {
//ajoute les lignes
$(".add-row").click(function(){
$("tbody tr").each(function(k, v) {
var qte= $(v).find('.quantite').val();
var pu= $(v).find('.prix-unitaire').val();
var pt= parseInt(qte) * parseInt(pu);
$(v).find('.pt').html(pt);
});
var markup = "<tr><td><input type='checkbox' name='record'></td><td><input type='text' name='quantite' placeholder='quantité' class='quantite'></td><td><select type='text' class='designation' name='designation'><option>Stylo</option><option>Cahier</option><option>Souris</option><option>Clavier</option></select><td><input type='text' name='prix-unitaire' placeholder='prix unitaire' class='prix-unitaire'></td><td><span class='pt'></span></td></tr>";
$("table tbody").append(markup);
i++;
});
});
form{
margin: 20px 0;
text-align:center;
}
.add-row{
background-color: #76a6f2;
}
.delete-row{
background-color: #f45a6f;
}
form input, button{
padding: 5px;
}
table{
width: 100%;
margin-bottom: 20px;
border-collapse: collapse;
}
table, th, td{
border: 1px solid #cdcdcd;
border-collapse: collapse;
}
table th, table td{
padding: 5px;
text-align: center;
}
#valider,button{
width:10%;
border-radius: 10px;
}
答案 1 :(得分:0)
<script type="text/javascript">
$(document).ready(function () {
var CompteurLigne = 1;
//ajoute les lignes
$("#add_row").click(function () {
CompteurLigne++;
let markup = '<tr><td><input type="checkbox" name="record_'+CompteurLigne+'" class="record" ></td><td><input type="text" placeholder="quantité" name="quantite_'+CompteurLigne+'" class="quantite"></td><td><select type="text" name="designation_'+CompteurLigne+'"><option>Stylo</option><option>Cahier</option><option>Souris</option><option>Clavier</option></select><td><input type="text" placeholder="prix unitaire" name="prix_unitaire_'+CompteurLigne+'" class="prix_unitaire"></td><td><span name="pt_'+CompteurLigne+'" class="prix_taxe"></span></td></tr>';
$("form tbody").append(markup);
Calcul_Prix_Taxe();
});
// Cherche et enleve les lignes selectionnees
$("#delete_row").click(function () {
$(".record:checkbox:checked").each(function () {
$(this).parents("tr").remove();
});
Calcul_Prix_Taxe();
});
$("#valider").click(function () {
Calcul_Prix_Taxe();
});
//Effectuer les calculs
function Calcul_Prix_Taxe() {
$("tbody tr").each(function () {
var
Qte = parseFloat( $(this).find(".quantite").val() ) || 0,
P_U = parseFloat( $(this).find(".prix_unitaire").val() ) || 0 ,
P_T = (Qte * P_U).toString(),
total+= P_T;
$(this).find(".prix_taxe").html( P_T );
});
$(".total")
}
});
</script>
<style type="text/css">
form{
margin: 20px 0;
text-align:center;
}
#add_row{
background-color: #76a6f2;
}
#delete_row{
background-color: #f45a6f;
}
form input, button{
padding: 5px;
}
table{
width: 100%;
margin-bottom: 20px;
border-collapse: collapse;
}
table, th, td{
border: 1px solid #cdcdcd;
border-collapse: collapse;
}
table th, table td{
padding: 5px;
text-align: center;
}
button{
text-align:center;
width:10%;
border-radius: 10px;
}
#tot{
text-align: right;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<hr>
<button id="valider">Valider</button>
<button id="add_row">Add row</button>
<button id="delete_row">Delete Row</button>
<hr>
<br>
<form method="POST" action="" id="form_trucs">
<table>
<thead>
<tr>
<th>Select</th>
<th>Quantité</th>
<th>Désignation</th>
<th>Prix Unitaire</th>
<th>Prix taxé</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="checkbox" name="record_1" class="record">
</td>
<td>
<input type="text" placeholder="quantité" name="quantite_1" class="quantite">
</td>
<td>
<select type='text' name='designation_1'>
<option>Stylo</option>
<option>Cahier</option>
<option>Souris</option>
<option>Clavier</option>
</select>
<td>
<input type="text" placeholder="prix unitaire" name="prix_unitaire_1" class="prix_unitaire">
</td>
<td>
<span name="pt_1" class="prix_taxe"></span>
</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
<b>Total Pt :<span name="total" class="total">0</span></b>
</table>
</form>
感谢您的回答。我已经想通了一些东西,对不起,我很简短...您了解...所以我将发布我所做的事情
现在,我希望获得“优惠税”的总计,这意味着在添加或删除行时,总计必须自行更新。
我想在我的Jquery语句“ let markup ='中添加我的php代码(与我的数据库进行交互),但是我尝试了但没有任何结果 这是我要放入的php代码
<?php echo "<select name='BX_DESIGNATION[]' size='1' class='DESCRIPTION' id='desig'>";
$sql= mysql_query(" SELECT * FROM tab_stock WHERE stock_dispo > stock_rupture ORDER BY code_medic ASC ") or die( mysql_error() );
echo "<option value='choisir' selected>Choisir</option>";
WHILE($rows = mysql_fetch_array($sql)) {
$designation=$rows['designation'];
$stock=$rows['stock_dispo'];
$stock_alerte=$rows['stock_alerte'];
$punic= mysql_query(" SELECT pu FROM tab_stock WHERE designation ='$designation' ") or die( mysql_error() );
$extrat= mysql_fetch_array($punic);
$pu = $extrat['pu'];
if($stock <= $stock_alerte){echo "<option label='".$pu."' value='".$designation."' style='color:red'>".$designation." ❌ ".$stock."</option>";} else
{echo "<option label='".$pu."' value='".$designation."'>".$designation."</option>";}
}
echo "</select>";
?>