Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

edgarzin

change(function() não executa

Recommended Posts

Ola, Estou com um problema na parte comentada do código.

 

Javascript

function getData(){

var facul = "<? echo $facul; ?>";
var sem = <? echo $sem; ?>;
var nomeLista = "<? echo $nomeLista[1]; ?>";


 $.post('buscaInicialLista.php',{
	   
	   facul: facul,
	   sem: sem,
	   nomeLista: nomeLista
	   },function(data){

	  $('.tgl2').prepend(data);

	// ATE AQUI TUDO FUNCIONA.

/******* 
$("#tabelaAluno > tbody tr .idQtd").change(function() { //NADA A PARTI DAQUI EXECUTA.	
	    alert("TESTE"); 
            var soma = 0;
          	var mult = 0;
          	var k = 0;
          	var j = 0;
			var totalItemsSelecionados = 0;
          	vetorQ = new Array();
          	vetorV = new Array();
          	
          	
          
          	$('#tabelaAluno > tbody tr .idValor, .idQtd').each(function(i){ 
          	var temp = $(this).val().toString().replace(",","");
          	var temp2 = temp.replace(".","");
  
          	 j++;
          	 if(i % 2 == 0) // é par
          	 {
          	  vetorQ[j] = temp2;
          	 }
          	 else
          	 {
          	  vetorV[j-1] = temp2;
          	  j--;
          	 }
          		}); 
          		
          	for(k = 1; k < vetorV.length; k++)
          	 {
		   if(!$.isNumeric(vetorQ[k])) 
	            vetorQ[k] = 0;
          	    soma = soma + (vetorQ[k] * vetorV[k]);
		   if(vetorQ[k] != 0)
		    totalItemsSelecionados++;
          	  
          	 }
          	 
          	
          		
          	
          soma = soma.toString().replace(/(\d)(\d{8})$/,"$1.$2");//coloca o ponto dos milhões
          soma = soma.toString().replace(/(\d)(\d{5})$/,"$1.$2");//coloca o ponto dos milhares
          soma = soma.toString().replace(/(\d)(\d{2})$/,"$1,$2");//coloca a virgula antes dos 2 últimos dígitos
          
          	
          	
          alert(soma);
	  alert(totalItemsSelecionados);
			     
           });	

**************/
 });

}

buscaInicialLista.php

<?php
include "config.php"; //aqui inserimos as váriaveis da página de configuração

/* Conecta ao Banco de Dados */
$conectar = mysql_connect($host, $login_db, $senha_db) or die (mysql_error());

/* Seleciona o Banco de dados na conexão do BD */
mysql_select_db($database, $conectar)or die ("Não foi selecionado o database");

$facul = $_POST['facul'];
$sem = $_POST["sem"];
$nomeLista = $_POST["nomeLista"];


$pesquisaItems = mysql_query("SELECT
   items.cod_item,
   items.desc_item,
   items.qtd_item,
   items.valor_item,
   items.total_item,
   items.obs_item,
   listas.total_lista,
   listas.total_items
 FROM   
ITEMS     
	 INNER JOIN listas ON (items.id_lista = listas.numero_lista)

where listas.id_facul = '{$facul}' and listas.id_semestre = '{$sem}' and listas.nome_lista = '{$nomeLista}'");


echo "
<table id='tabelAaluno' border='0'>   
<tr> 

<th>Quantidade</th>  
<th></th>
<th>Descrição</th>
<th></th>
<th>Observação</th>
</tr>";

while($row = mysql_fetch_array($pesquisaItems))
{
  
    echo "<tr style='background-color:#AFDBFF' >";
    echo "<td style='background-color:#AFDBFF'><div align='center'><input type='text' class='idQtd'  name='Qtd' size='1' maxlength='3' value='".$row['qtd_item']."'></div></td>";                         
echo "<td> <div align='center'><input type='text' style='display:none' name='valor' class='idCod' size='4' value='".$row['cod_item']."'></div></td>";
    echo "<td style='background-color:#AFDBFF'><div align='center'><textarea cols='45' rows='5' class='idDesc' name='Desc' DISABLED size='200' value='".$row['desc_item']."'>".$row['desc_item']."</textarea></div></td>";
    echo "<td> <div align='center'><input type='text' style='display:none' name='valor' class='idValor' size='4' value='".$row['valor_item']."'></div></td>";

    echo "<td style='background-color:#AFDBFF'><div align='center'><textarea cols='30' rows='5' class='idObs' name='Obs' DISABLED  size='15' value='".$row['obs_item']."'>".$row['obs_item']."</textarea></div></td>";       
    echo "<td> <div align='center'><input type='text' style='display:none' name='total' class='idTotal' size='4' value='".$row['total_item']."'></div></td>";
 
    echo "</tr>";
 
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como funcionar... No JS você está utilizando um seletor que simplesmente não existe no seu HTML.

1- No seu HTML a tabela está com id=tabelAaluno enquanto que no JS está como tabelaAluno.

2- Em nenhum lugar do HTML estou vendo você abrir a tag tbody que também está sendo utilizada no seletor.


Faça as correções no HTML ou troque o seletor para o correto que vai funcionar. Quanto você passar por esse tipo de problema de novo, utilize o console.log() para depurar seu código. Se você der um

console.log($("#tabelaAluno > tbody tr .idQtd"))

Você vai ver que o objeto tem .length = 0. Ou seja, o seletor não foi encontrado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acontece... :D

Usa a dica do console.log() sempre que seu código não funcionar como o esperado. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.