/    Sign up×
Community /Pin to ProfileBookmark

Realizar Multiplicação em campos em loop [pendente]

Como não sei javascript gostaria de uma ajuda de como Fazer a multiplicação do “produtos” com o campo “qtd” e mostre o resultado no campo “total” ao final de cada linha e ai gerar um somatório Geral

[upl-image-preview url=https://www.webdeveloper.com/assets/files/2019-06-26/1561558401-937776-image.png]

<script type=”text/javascript”>
//<![CDATA[

window.onload=function(){

(function ($) {
$(‘#destino_in’).on(‘change’, function () {
var $self = $(this);
$(‘#destino_out’).val($self.val());
});
}(jQuery));
$(function () {
var divContent = $(‘#materialInst’);
var botaoAdicionar = $(‘a[data-id=”1″]’);
var i = 1;
var itens = [];
// VARIAVEL ADD
var destino;

//Ao clicar em adicionar ele cria uma linha com novos campos
$(botaoAdicionar).click(function () {
$(‘<div class=”conteudoIndividual” data-id=”‘ + i + ‘”><tr><td>’+

‘<select name=”destino_in” id=”destino_in” class=”destino_in form-control”>’+
‘<option value=”” selected disabled>Selecione…</option>’+
‘<option value=”Abacaxi-10,00″>Abacaxi</option>’+
‘<option value=”Banana-20,00″>Banana</option>’+
‘<option value=”Uva-30,00″>Uva</option>’+
‘</select>’+

‘<input type=”text” placeholder=”Valor” name”valor” id=”valor” class=”form-control” />’+
‘<input type=”text” name=”estado” size=”5″ class=”form-control” placeholder=”Unid” value=”” />’+
‘<input type=”text” size=”5″ name=”mult” id=”mult” class=”form-control” placeholder=”Total” value=”” />’+
‘<a href=”#” class=”linkRemover”>Remover</a></td></tr></div>’).appendTo(divContent);
$(‘#removehidden’).remove();
$(‘<input type=”hidden” name=”quantidadeCampos” value=”‘ + i + ‘” id=”removehidden”>’).appendTo(divContent);
i++;
// ADD AQUI
// Aqui acontece a inserção dos valores no outro input
destino = $(‘.destino_in’);

itens.push({
“destino”: “”,
“valor”: 0.0
});
// verifico no evento de change
destino.on(‘change’, function() {
// quando ocorrer, capturo o valor selecionado
var selected = $(this).val();
// divido a string em 2, separada pelo (-) [nome(-)valor]
var res = selected.split(“-“, 2);
var idx = parseInt($(this).closest(‘div.conteudoIndividual’).attr( ‘data-id’ )) – 1;
itens[idx].destino = res[0];
if(res[1]) {
itens[idx].valor = parseFloat(res[1].replace(‘,’, ‘.’));

}
$(‘input[name=total]’).val(itens.reduce(function (prev, curr) { return prev + curr.valor; }, 0.0).toFixed(2).replace(‘.’, ‘,’));

// adiciono no input #valor o resultado do array na posição 1
$(this).next().val(res[1]);
});

// FIM ADD
});

//Cliquando em remover a linha é eliminada
$(‘#materialInst’).on(‘click’, ‘.linkRemover’, function () {
var elementToRemove = $(this).parents(‘.conteudoIndividual’);
var idx = parseInt(elementToRemove.attr( ‘data-id’ )) – 1;
itens.splice(idx, 1);
elementToRemove.remove();
i–;
$(‘input[name=total]’).val(itens.reduce(function (prev, curr) { return prev + curr.valor; }, 0.0).toFixed(2).replace(‘.’,
‘,’));
});
});

}

//]]></script>

</head>
<body>
<a href=”#” id=”adicionar” data-id=”1″>Adcionar nova Linha</a>

<form id=”form1″ name=”form1″ action=”src/acao/cli.php” method=”POST” enctype = “multipart/form-data” >
<table>
<div id=”materialInst”>
</div>

to post a comment
JavaScript

7 Comments(s)

Copy linkTweet thisAlerts:
@daveyerwinJun 26.2019 — forneça por favor o código HTML associado
Copy linkTweet thisAlerts:
@fabioo7authorJun 26.2019 —  <script type="text/javascript"src="//code.jquery.com/jquery-3.1.1.js"></script>
só faltou isso
Copy linkTweet thisAlerts:
@VITSUSAJun 27.2019 — @fabioo7#1605431 Which language you are using to ask question?
Copy linkTweet thisAlerts:
@fabioo7authorJun 27.2019 — Portugues Brazil
Copy linkTweet thisAlerts:
@daveyerwinJun 27.2019 — ``<i>
</i>&lt;script src="https://code.jquery.com/jquery-1.11.3.js"&gt;&lt;/script&gt;

&lt;body&gt;
&lt;header&gt;Site Wide Header&lt;/header&gt;
&lt;h1 class=header&gt;the page&lt;/h1&gt;
&lt;section&gt;

&lt;/section&gt;
&lt;/body&gt;
&lt;script&gt;
var form = $('&lt;form&gt;',{
id:'form1',
action:'src/acao/cli.php',
method:'post',
enctype:'multipart/form-data'});
/*************************************************/
/*submit event is canceled*/
form.on('submit',function(e){e.preventDefault()});
/*************************************************/
var grandeTotal = $('&lt;input&gt;',{
placeholder:'grandeTotal',
name:'quantidadeCampos,'
}
).appendTo($('&lt;div&gt;')
).appendTo(form);
form.appendTo($('section'));
var but = $('&lt;input&gt;',{
type:'button',
value:'ADDROW'
}
).appendTo($('&lt;div&gt;')
).appendTo(form);
var sub = $('&lt;input&gt;',{
type:'submit',
value:'SUBMIT'
}
).appendTo($('&lt;div&gt;')
).appendTo(form);
function criarEnteria(){
var div = $('&lt;div&gt;');
var sel = $('&lt;select&gt;',{
name:'destino_in',
class:'form-control',
change:function(){
valor.val(sel.val());
unid.removeAttr('disabled')
}
}
).appendTo(div);
$('&lt;option&gt;',{
selected:'',
disabled:'',
text:'Selecione...'
}
).appendTo(sel);
$('&lt;option&gt;',{
value:'10.00',
text:'Abacaxi'
}
).appendTo(sel);
$('&lt;option&gt;',{
value:'20.00',
text:'Banana'
}
).appendTo(sel);
$('&lt;option&gt;',{
value:'30.00',
text:'Uva'
}
).appendTo(sel);
var valor = $('&lt;input&gt;',{
disabled:'',
placeholder:'Valor',
size:5,name:'valor',
class:'form-control'
}
).appendTo(div);
var unid = $('&lt;input&gt;',{
disabled:'',
placeholder:'Unid',
size:5,name:'estado',
class:'form-control'
}
).appendTo(div);
unid.on('input', function(){
var sum = 0;
total.val((unid.val()*valor.val()).toFixed(2));
$('#form1 input[name=mult]').each(function(index){
sum += Number(this.value);
});
grandeTotal.val(sum.toFixed(2));
});
var total = $('&lt;input&gt;',{
disabled:'',
placeholder:'Total',
size:5,
name:'mult',
class:'form-control'
}
).appendTo(div);
$('&lt;input&gt;',{
type:'button',
value:'Remover',
click:function()
{
div.remove();
var sum = 0;
total.val((unid.val()*valor.val()).toFixed(2));
$('#form1 input[name=mult]').each(function(index){
sum += Number(this.value);
});
grandeTotal.val(sum.toFixed(2));
}
}
).appendTo(div);
return div}

but.click(function(){criarEnteria().prependTo(form)});
&lt;/script&gt;<i>
</i>
``
Copy linkTweet thisAlerts:
@fabioo7authorJun 27.2019 — Perfect.... thank you
Copy linkTweet thisAlerts:
@daveyerwinJun 28.2019 — not nearly perfect

Não é perfeito

Isso é melhor

``<i>
</i>&lt;script src="https://code.jquery.com/jquery-1.11.3.js"&gt;&lt;/script&gt;

&lt;body&gt;
&lt;header&gt;Site Wide Header&lt;/header&gt;
&lt;h1 class=header&gt;the page&lt;/h1&gt;
&lt;section&gt;

&lt;/section&gt;
&lt;/body&gt;
&lt;script&gt;
var unid=null;
var form = $('&lt;form&gt;',{
id:'form1',
action:'cli.php',
method:'post',
enctype:'multipart/form-data'});
/*************************************************/

form.on('submit', function(e){
//add // before following line to allow submission
e.preventDefault();
$('#form1 input, #form1 select').each(
function(index){
var input = $(this).removeAttr('disabled');
}
);
});

/*************************************************/
var grandeTotal = $('&lt;input&gt;',{
placeholder:'grandeTotal',
name:'quantidadeCampos',
}
).appendTo($('&lt;div&gt;')
).appendTo(form);
form.appendTo($('section'));
var but = $('&lt;input&gt;',{
type:'button',
value:'ADDROW'
}
).appendTo($('&lt;div&gt;')
).appendTo(form);
var sub = $('&lt;input&gt;',{
type:'submit',
value:'SUBMIT'
}
).appendTo($('&lt;div&gt;')
).appendTo(form);

function criarEnteria(){
if(unid)unid.attr('disabled','');
var div = $('&lt;div&gt;');
var nomeDoProduto = $('&lt;input&gt;',{
disabled:'',
hidden:'',
name:'produto[]',
class:'form-control'
}
).appendTo(div);
var sel = $('&lt;select&gt;',{
class:'form-control',
change:function(){
nomeDoProduto.val($(this).children('option:selected').text());
valor.val(sel.val());
unid.removeAttr('disabled');
sel.attr('hidden','');
nomeDoProduto.removeAttr('hidden')
}
}
).appendTo(div);
$('&lt;option&gt;',{
selected:'',
disabled:'',
text:'Selecione...'
}
).appendTo(sel);
$('&lt;option&gt;',{
value:'10.00',
text:'Abacaxi'
}
).appendTo(sel);
$('&lt;option&gt;',{
value:'20.00',
text:'Banana'
}
).appendTo(sel);
$('&lt;option&gt;',{
value:'30.00',
text:'Uva'
}
).appendTo(sel);
var valor = $('&lt;input&gt;',{
disabled:'',
placeholder:'Valor',
name:'valor[]',
class:'form-control'
}
).appendTo(div);
unid = $('&lt;input&gt;',{
disabled:'',
type:'number',
placeholder:'Unid',
name:'estado[]',
class:'form-control'
}
).appendTo(div);
unid.on('input', function(){
var sum = 0;but.OK = false;
total.val((unid.val()*valor.val()).toFixed(2));
$('#form1 input[name="mult[]"]').each(function(index){
sum += Number($(this).val());
});
grandeTotal.val(sum.toFixed(2));
});
var total = $('&lt;input&gt;',{
disabled:'',
placeholder:'Total',
name:'mult[]',
class:'form-control'
}
).appendTo(div);
$('&lt;input&gt;',{
type:'button',
value:'Remover',
click:function()
{
div.remove();
var sum = 0;
total.val((unid.val()*valor.val()).toFixed(2));
$('#form1 input[name="mult[]"]').each(function(index){
sum += Number(this.value);
});
grandeTotal.val(sum.toFixed(2));
}
}
).appendTo(div);
return div;
}

but.click(function(){
if(but.OK)return;
criarEnteria().prependTo(form);
but.OK = true;
}
);



&lt;/script&gt;<i>
</i>
`</CODE>

cli.php ...

<CODE>
`<i>
</i>&lt;table&gt;
&lt;?php
echo '&lt;tr&gt;&lt;td&gt;produto&lt;/td&gt;&lt;td&gt;valor&lt;/td&gt;&lt;td&gt;estado&lt;/td&gt;&lt;td&gt;mult&lt;/td&gt;&lt;/tr&gt;';
for ($i = 0; $i &lt; count($_POST['estado']); $i++) {
echo &lt;&lt;&lt;EOF
&lt;tr&gt;&lt;td&gt;{$_POST['produto'][$i]}&lt;/td&gt;
&lt;td&gt;{$_POST['valor'][$i]}&lt;/td&gt;
&lt;td&gt;{$_POST['estado'][$i]}&lt;/td&gt;
&lt;td&gt;{$_POST['mult'][$i]}&lt;/td&gt;&lt;/tr&gt;
EOF;
}
echo '&lt;/table&gt;';
echo $_POST['quantidadeCampos'];
echo '&lt;/table&gt;';
?&gt;<i>
</i>
``


https://www.handgunsforhomeless.com/fabioo7/
×

Success!

Help @fabioo7 spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.5,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,

tipper: @Samric24,
tipped: article
amount: 1000 SATS,
)...