
Julim
Membros-
Total de itens
20 -
Registro em
-
Última visita
Sobre Julim

Julim's Achievements
0
Reputação
-
[Resolvido] Popular combobox com json
pergunta respondeu ao Julim de Julim em Ajax, JavaScript, XML, DOM
Não sei se é o modo correto, mas resolvi da forma mais "besta" possível. Deixo ai pra quem precisar de algo parecido. var dados = JSON.stringify(data); var obj = eval ("(" + dados + ")"); var x; for(x=0;x<=obj.parcelas[x].quantidade;x++){ $("select[name=parcela]").append("<option value='"+ obj.parcelas[x].quantidade +"'>"+ obj.parcelas[x].quantidade +" x " + float2moeda(obj.parcelas[x].valor) + "</option>"); } T+ -
[Resolvido] Popular combobox com json
pergunta respondeu ao Julim de Julim em Ajax, JavaScript, XML, DOM
E aí pessoal, alguém pode me ajudar? -
Olá pessoal, Tenho um script que me retorna um json, e gostaria de popular um combo com os dados. O script é o seguinte: retornoCalculoParcelamento = function(data) { alert(JSON.stringify(data)); }; O resultado é o seguinte: {"parcelas":[{"quantidade":"1","valor":"396.17","valor_total":"396.17"},{"quantidade":"2","valor":"198.09","valor_total":"396.17"},{"quantidade":"3","valor":"132.06","valor_total":"396.17"},{"quantidade":"4","valor":"99.04","valor_total":"396.17"},{"quantidade":"5","valor":"79.23","valor_total":"396.17"},{"quantidade":"6","valor":"66.03","valor_total":"396.17"},{"quantidade":"7","valor":"56.60","valor_total":"396.17"},{"quantidade":"8","valor":"49.52","valor_total":"396.17"},{"quantidade":"9","valor":"44.02","valor_total":"396.17"},{"quantidade":"10","valor":"39.62","valor_total":"396.17"}]} Eu gostaria de popular o combo da seguinte forma: <option value="">Quantidade - Valor</option> Alguém me ajuda?
-
Segue o código com a solução: SELECT c1.*, DATE_FORMAT(c1.data_cad,'%d/%m/%Y') AS cadastro, DATE_FORMAT(c1.data_atualizacao,'%d/%m/%Y') AS atualizacao, DATE_FORMAT(c1.previsao_fechamento,'%d/%m/%Y') AS previsao, c2.r_razao_social, c3.p_nome, c4.c_razao_social FROM tb_projeto c1 LEFT JOIN tb_revenda c2 ON (c2.id_revenda=c1.id_revenda) LEFT JOIN tb_profissional c3 ON (c3.id_profissional=c1.id_profissional) LEFT JOIN tb_cliente c4 ON (c4.id_cliente=c1.id_cliente) WHERE DATE(c1.previsao_fechamento)>=DATE(NOW()) AND UNIX_TIMESTAMP(c1.previsao_fechamento) <= '".mktime(0,0,0,date('m') + 3,date('d'),date('Y'))."' AND YEAR(c1.previsao_fechamento)>=YEAR(NOW()) AND status < 9
-
Pessoal, to quase lá. Só preciso resolver essa linha: AND c1.previsao_fechamento <= '".mktime(0,0,0,date('m') + 3,date('d'),date('Y'))."' Neste caso, me mostrará os registros entre a data do bd (c1.previsao_fechamento) enquanto ela for menor ou igual a tres meses para frente. Tomando como exemplo o mes atual, dezembro, a listagem mostra os registros de dezembro de 2012, janeiro e fevereiro de 2013. Para que eu faça a comparação, preciso usar mktime na data do banco c1.previsao_fechamento. Alguém saberia como me ajudar?
-
Opa, desculpe ter postado no lugar errado.
-
Bom dia pessoal, Estou com uma dificuldade em fazer uma comparação de data na consulta. Tenho no BD uma data no formato Y/m/d e preciso comparar com ela mesma, só que acrescida de três meses, mas não estou obtendo o resultado esperado. Segue o código: SELECT c1.*, DATE_FORMAT(c1.data_cad,'%d/%m/%Y') AS cadastro, DATE_FORMAT(c1.data_atualizacao,'%d/%m/%Y') AS atualizacao, DATE_FORMAT(c1.previsao_fechamento,'%d/%m/%Y') AS previsao, c2.r_razao_social, c3.p_nome, c4.c_razao_social FROM tb_projeto c1 LEFT JOIN tb_revenda c2 ON (c2.id_revenda=c1.id_revenda) LEFT JOIN tb_profissional c3 ON (c3.id_profissional=c1.id_profissional) LEFT JOIN tb_cliente c4 ON (c4.id_cliente=c1.id_cliente) WHERE MONTH(c1.previsao_fechamento)>=MONTH(NOW()) AND MONTH(c1.previsao_fechamento)< '".mktime(0,0,0,date('m') + 3,date('d'),date('Y'))."' AND YEAR(c1.previsao_fechamento)>=YEAR(NOW()) AND status < 9 Nas linhas 7, 8 e 9 é onde faço a comparação para que me mostre os registros deste mês em diante limitando a daqui três meses, ou seja, tem que mostrar os registros de dezembro, janeiro e fevereiro, mas só está listando os registros de dezembro. Alguém tem uma dica? Obrigado
-
Olá Romero! Muito obrigado pela ajuda, era isso mesmo que eu precisava, mas não sabia exatamente como fazer. Muito obrigado mesmo! Grande abraço, Julio
-
Bom dia foristas, Estou com um pequeno problema ao executar um select com group by. O select busca registros de três tabelas diferentes para montar os dados numa tabela comum. Os registros são apresentados da seguinte forma: ID PROJETO PRODUTO 1 PRODUTO 2 PRODUTO 3 VALOR TOTAL 12 teste 20 1200.00 12 teste 30 1200.00 Como pode se observar, quando faço o select, tenho IDs iguais devido a estrutura das tabelas e o modo como são gravados os dados. Quando uso o GROUP BY id, para agrupar os registros de IDs iguais, o select só me traz o primeiro registro deste ID. Eu preciso que o resultado venha assim: ID PROJETO PRODUTO 1 PRODUTO 2 PRODUTO 3 VALOR TOTAL 12 teste 20 30 1200.00 O select é o apresentado abaixo: SELECT c1.*, c1.id_projeto, DATE_FORMAT(c1.data_cad,'%d/%m/%Y') AS cadastro, DATE_FORMAT(c1.data_atualizacao,'%d/%m/%Y') AS atualizacao, DATE_FORMAT(c1.data_cad,'%d/%m/%Y') AS previsao_fechamento, c2.id_projeto, c2.id_produto, c2.quantidade, c3.id_produto, c3.titulo AS produto, c4.*, c5.id_profissional, c5.p_nome AS profissional, c6.id_revenda, c6.r_razao_social AS revenda FROM tb_projeto c1 LEFT JOIN tb_projeto_item c2 ON (c1.id_projeto=c2.id_projeto) LEFT JOIN tb_produto c3 ON (c3.id_produto=c2.id_produto) LEFT JOIN tb_cliente c4 ON (c4.id_cliente=c1.id_cliente) LEFT JOIN tb_profissional c5 ON (c5.id_profissional=c1.id_profissional) LEFT JOIN tb_revenda c6 ON (c6.id_revenda=c1.id_revenda) GROUP BY c1.id_projeto ORDER BY c1.id_projeto DESC Agradeço de coração qualquer ajuda.
-
olá pessoal, estou com um problema no confirm do javascript, e gostaria da opinião dos colegas para me apontar o erro. na teoria, o que deveria acontecer é a chamada do ajax somente se clicado no botão ok para apagar o registro. Entretanto está apagando o registro mesmo clicando no botão cancelar. o código é o seguinte: function confirma(id){ decisao = confirm("Tem certeza?"); if (decisao){ $.ajax({ type: "POST", url: "content/sub/actions.php", data: "acao=remover&id="+id, success: function(msg){ alert("Removido com sucesso!"); parent.reload_main(); } }) }else{ alert ("Operação cancelada."); } }
-
Por favor, me desculpe. Foi um descuido e não voltará a se repetir. A propósito, esse é o SEGUNDO tópico que posto, e não o terceiro. Pode, por gentileza, apagar esse tópico. Att. Júlio Como já resolvi sozinho, quero deixar a resposta para os usuários que fórum tirarem proveito quando for necessário. $sql = mysql_query(" SELECT SUM(valor_estimado), MONTH(data_cad) AS mes, YEAR(data_cad) AS ano FROM tb_projeto WHERE DATE(data_cad)>'".date('Y-m-d', strtotime('-365 day'))."' GROUP BY mes ORDER BY ano ASC ") or die (mysql_error()); while($row = mysql_fetch_array($sql)){ echo "['".$row[mes]."', ".$row[0]."], "; }
-
Bom pessoal, estou com uma coisa me atrapalhando a um dia inteiro. Preciso fazer um SELECT que agrupe as datas por mes, e depois por ano. Tentei com um SELECT dentro de OUTRO. Agrupa os meses certinho, mas o ano não. Alguém pode me ajudar? Segue o código for($i=0;$i<count($meses);$i++){ $sql = mysql_query(" SELECT * FROM ( SELECT SUM(valor_estimado), data_cad FROM tb_projeto WHERE MONTH(data_cad)='".$meses[$i][0]."' GROUP BY MONTH(data_cad) // agrupando os meses ) AS tabela WHERE DATE(data_cad)>'".date('Y-m-d', strtotime('-365 day'))."' //pegando os resultados dos últimos 12 meses (24/08/2011 a 23/08/2012) GROUP BY YEAR(data_cad) // aqui tentei agrupar pelo ano ORDER BY YEAR(data_cad) ASC // e aqui ordenar pelo ano, do menor para o maior ") or die ("Erro nessa bagunça >> ".mysql_error()); $row = mysql_fetch_array($sql); if($row[0]){ echo "['".$meses[$i][1]."', ".$row[0]."], "; } } O resultado dessa query é o seguinte: ['Jun', 42750.5], ['Ago', 60425], ['Nov', 3200], Sendo os os meses de Jun e Ago são de 2012 e o mês de Nov é referente a 2011. O que eu preciso é mostrar esse resultado acima, da seguinte forma: ['Nov', 3200], ['Jun', 42750.5], ['Ago', 60425], Porque o mês de Nov é de 2011 e Jun e Ago de 2012. Please, help me!
-
RESOLVIDO Não consegui fazer a consulta transformando os valores gravados no bd no formato 11.111,11 para 11111.11, então mudei direto no banco e depois bastou usar o comando SUM. Não era o que eu queria, pois dessa forma terei que alterar muita coisa no projeto, mas tudo bem. Obrigado pela ajuda! $sql = mysql_query("SELECT SUM(valor_estimado), MONTH(data_cad) FROM tb_projeto WHERE YEAR(data_cad)=YEAR(NOW()) GROUP BY MONTH(data_cad)") or die ("Erro >> ".mysql_error()); while ($row = mysql_fetch_array($sql)){ print_r($row); }
-
Então, se eu usar o SUM, tenho que tratar os valores do BD e transformar 3.000,00 em 3000.00. Eu tenho uma função para isso, mas não sei como usar direto na query. Tipo: $sql = mysql_query("SELECT SUM(funcao_converte_decimal(valor_estimado)), MONTH(data_cad) FROM tb_projeto GROUP BY MONTH(data_cad)") or die ("Erro >> ".mysql_error()); Mas claro que assim não funciona. Se eu achasse uma forma de executar essa funcao_converte_decimal direto na query, resolveria o problema. Outra maneira seria o que você sugeriu e mudar a forma que gravo no BD os valores, gravando já no formato decimal. Só que eu queria evitar isso, pois esse projeto é uma atualização, e terei que transportar dados do bd antigo para esse novo, e neste caso, vai dar incompatibilidade com os formatos de moeda. Por isso eu usei um loop pegando os valores e somando a cada passagem, mas neste caso, só está pegando o primeiro registro de cada mês. Pensei em usar um for, mas também não sei como fazer isso.
-
To quae chegando lá. Descobri uma forma de somar os valores, porém só funciona se eu usar um WHERE data_cad=determinado mes. Se usar o GROUP BY, pega apenas o primeiro registro de cada mes. Mais alguém pode me dar uma orientação? Preciso da somatória de todos os registros de cada mes. Agradeço desde já //desta forma, pega todos os registros do mes 8 e vai somando os valores. Fica certinho, mas preciso de todos os meses, ai uso o GROUP BY no outro exemplo $sql = mysql_query("SELECT valor_estimado, MONTH(data_cad) FROM tb_projeto WHERE MONTH(data_cad)='8'") or die ("Erro >> ".mysql_error()); $total=0; while ($row = mysql_fetch_array($sql)){ $valor = $row[valor_estimado]; $total+=$valor; array_push($row, $total); //adiciono o valor na array echo "<pre>"; print_r($row); echo "</pre>"; } //desta forma, agrupa os meses mas só pega o primeiro registro de cada mes. $sql = mysql_query("SELECT valor_estimado, MONTH(data_cad) FROM tb_projeto GROUP BY MONTH(data_cad)") or die ("Erro >> ".mysql_error()); $total=0; while ($row = mysql_fetch_array($sql)){ $valor = $row[valor_estimado]; $total+=$valor; array_push($row, $total); //adiciono o valor na array echo "<pre>"; print_r($row); echo "</pre>"; }