Boa tarde pessoal,
Sou novo aqui na utilização do Yii, e estou apanhando para criação de um formulario com pedidos e itens pedidos, seguindo estes tutoriais http://www.yiiframework.com/forum/index.php/topic/37387-pedidos-e-itens-de-pedidos/
e usando a extensão jappendo consegui gerar o layout adicionar o pedido e um item porém quando adiciono um segundo ou terceiro item não executa a função jquery que realiza a multiplicação da quantidade de quilos e valor total do item.
Segue em anexo um print da aplicação, e código do arquivo que gera os itens do pedido:
<?php
// SCRIPT DE CALCULO TOTAL DE ITEM
Yii::app()->clientScript->registerScript('totalkg', "
// $('.div-miniaturas').delegate('.miniatura', 'click', function() {
//$('#quantidade_sacas').live('blur', function(){
//$('#quantidade_sacas').focusout(function(){
$('#pedido-form').on('blur', '#quantidade_sacas', function() {
var quantidade_sacas = $('#quantidade_sacas').val();
var sacas = $('#sacas').val();
var peso = parseFloat(quantidade_sacas*sacas);
var quantidade_kg = peso.toFixed(2);
//alert('valor total ' + total_item);
$('#quantidade_kg').val(quantidade_kg);
//$('div#total').html(total); //mostrando o resultado em uma div também
});"
);
/*
// SCRIPT DE CALCULO TOTAL DE ITEM
Yii::app()->clientScript->registerScript('totalkg1', "
// $('#quantidade_sacas').focusout(function(){
$('#quantidade_sacas[]').live('blur', function(){
var quantidade_sacas = $('#quantidade_sacas[]').val();
var sacas = $('#sacas[]').val();
var peso = parseFloat(quantidade_sacas[]*sacas[]);
var quantidade_kg = peso.toFixed(2);
//alert('valor total ' + total_item);
$('#quantidade_kg[]').val(quantidade_kg);
//$('div#total').html(total); //mostrando o resultado em uma div também
});"
);
*
*/
// SCRIPT DE CALCULO TOTAL DE ITEM
Yii::app()->clientScript->registerScript('totalitem', "
$('#preco_venda').focusout(function(){
var quantidade_kg = $('#quantidade_kg').val();
var preco_venda = $('#preco_venda').val();
var calculo = parseFloat(quantidade_kg*preco_venda);
var total_item = calculo.toFixed(2);
//alert('valor total ' + total_item);
$('#total_item').val(total_item);
//$('div#total').html(total); //mostrando o resultado em uma div também
});"
);
?>
<table class="appendo-gii" id="<?php echo $id ?>">
<thead>
<tr>
<h2>Itens Pedido</h2 >
</tr>
<tr>
<th>Produto</th><th>Kg Sacas</th><th>Qtd. Sacas</th><th>Qtd. Kg</th><th>Preço</th><th>Total Item</th>
</tr>
</thead>
<tbody>
<?php if ($model->idproduto == null): ?>
<tr>
<td>
<?php
echo CHtml::dropDownList('idproduto[]', "string", CHtml::listData(
Produto::model()->findAll(), 'idproduto', 'descricao'), array('empty' => 'Selecione um produto'), array('style' => 'width:100px'));
?>
</td>
<td>
<?php
echo CHtml::dropDownList('sacas[]', "string", array(
10 => "Saca 10 kg",
25 => "Saca 25 kg",
50 => "Saca 50 kg",), array('empty' => 'Selecione a saca'), array('style' => 'width:100px'));
?>
</td>
<td><?php echo CHtml::textField('quantidade_sacas[]', '', array('id' => 'quantidade_sacas'), array('style' => 'width:60px')); ?></td>
<td><?php echo CHtml::textField('quantidade_kg[]', '', array('id' => 'quantidade_kg'), array('disabled' => true), array('style' => 'width:80px')); ?></td>
<td><?php echo CHtml::textField('preco_venda[]', '', array('id' => 'preco_venda'), array('style' => 'width:60px')); ?></td>
<td><?php echo CHtml::textField('total_item[]', '', array('id' => 'total_item'), array('disabled' => true), array('style' => 'width:80px')); ?></td>
</tr>
<?php else: ?>
<?php for ($i = 0; $i < sizeof($model->idproduto); ++$i): ?>
<tr>
<td>
<?php
echo CHtml::dropDownList('idproduto[]', $model->idproduto[$i], CHtml::listData(
Produto::model()->findAll(), 'idproduto', 'descricao'), array('empty' => 'Selecione um produto'), array('style' => 'width:100px'));
?>
</td>
<td>
<?php
echo CHtml::dropDownList('sacas[]', $model->sacas[$i], array(
10 => "Saca 10 kg",
25 => "Saca 25 kg",
50 => "Saca 50 kg",), array('empty' => 'Selecione a saca'), array('style' => 'width:100px'));
?>
</td>
<td><?php echo CHtml::textField('quantidade_sacas[]', $model->quantidade_sacas[$i], array('id' => 'quantidade_sacas'), array('style' => 'width:60px')); ?></td>
<td><?php echo CHtml::textField('quantidade_kg[]', $model->quantidade_kg[$i], array('id' => 'quantidade_kg'), array('style' => 'width:80px')); ?></td>
<td><?php echo CHtml::textField('preco_venda[]', $model->preco[$i], array('id' => 'preco_venda'), array('style' => 'width:60px')); ?></td>
<td><?php echo CHtml::textField('total_item[]', $model->total_item[$i], array('id' => 'total_item'), array('style' => 'width:80px')); ?></td>
</tr>
<?php endfor; ?>
<tr>
<td>
<?php
echo CHtml::dropDownList('idproduto[]', "string", CHtml::listData(
Produto::model()->findAll(), 'idproduto', 'descricao'), array('empty' => 'Selecione um produto'), array('style' => 'width:100px'));
?>
</td>
<td>
<?php
echo CHtml::dropDownList('sacas[]', "string", array(
10 => "Saca 10 kg",
25 => "Saca 25 kg",
50 => "Saca 50 kg",), array('empty' => 'Selecione a saca'), array('style' => 'width:100px'));
?>
</td>
<td><?php echo CHtml::textField('quantidade_sacas[]', '', array('id' => 'quantidade_sacas'), array('style' => 'width:60px')); ?></td>
<td><?php echo CHtml::textField('quantidade_kg[]', '', array('id' => 'quantidade_kg'), array('style' => 'width:80px')); ?></td>
<td><?php echo CHtml::textField('preco_venda[]', '', array('id' => 'preco_venda'), array('style' => 'width:60px')); ?></td>
<td><?php echo CHtml::textField('total_item[]', '', array('id' => 'total_item'), array('style' => 'width:80px')); ?></td>
</tr>
<?php endif; ?>
</tbody>
</table>
Muito obrigado grande abraço !!!