Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Meu nome é Heitor estou com um problema em um sistema que estou desenvolvendo, gostaria de saber se alguém pode me ajudar.
Ele pega um valor de uma tabela, usa o post e joga para um Modal em jquery ui,
o problema é que depois de abrir umas cinco vezes CORRETAMENTE não abre mais, só abre se atualizar página.
obs.: o problema não está no modal pois sem a função post e modal abre e fecha corretamente.
<script type="text/javascript">
$(function(){
$("#revperfil").live('click',function(){
var codrev = ($('td:first', $(this).parents('tr')).text());
$.post('rev_perfil.php',{codrev:codrev}, function(data) {
$( "#rev_perfil" ).dialog( "open" ).html(data);
});
});
});
</script>
<script>
$(function() {
$( "#rev_perfil" ).dialog({
height: 700,
width:700,
modal: true,
autoOpen: false,
});
});
</script>
rev_perfil.php
<?php
$codrev = $_POST['codrev'];
include("db.php");
$busca = mysql_query("SELECT rev_nome,rev_datanasc,rev_endereco,rev_logradouro,rev_bairro,rev_cidade,rev_estado,rev_cep,rev_cpf,rev_rg,rev_cel,rev_fone,rev_email FROM revendedor where codrev='$codrev' AND rev_excluido='0'");
mysql_num_rows($busca);
while ($resultado = mysql_fetch_array($busca))
extract($resultado);
echo ' <table class="rev_perfil_tabela" id="rev_perfil_tabela" cellpadding="0" cellspacing="0">';
echo "<tr bgcolor='#ddd'>";
echo "<td><strong>Código</strong></td>";
echo "<td>$codrev</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Representante</strong></td>";
echo "<td>$rev_nome</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Data Nasc</strong></td>";
echo "<td>$rev_datanasc</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Endereço</strong></td>";
echo "<td>$rev_endereco</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Logradouto</strong></td>";
echo "<td>$rev_logradouro</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Bairo</strong></td>";
echo "<td>$rev_bairro</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Cidade</strong></td>";
echo "<td>$rev_cidade</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Estado</strong></td>";
echo "<td>$rev_estado</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Cep</strong></td>";
echo "<td>$rev_cep</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Cpf</strong></td>";
echo "<td>$rev_cpf</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Rg</strong></td>";
echo "<td>$rev_rg</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Cel</strong></td>";
echo "<td>$rev_cel</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Fone</strong></td>";
echo "<td>$rev_fone</td>";
echo "</tr> ";
echo "<tr> ";
echo "<td><strong>Email</strong></td>";
echo "<td>$rev_email</td>";
echo "</tr> ";
?>
Se alguém puder me ajudar, obrigado
da um console no data e veja se retorna tudo certinho do PHP.
se retornar certo o problema é com o modal mesmo.
Envie o post sem o jquery. e veja se os dados aparecem.
Deve ser por causa do live, pois ele atualiza só o dom. Você precisa dar o posto pelo jquery? Pois nesse caso a melhor solução seria ajax.
na verdade é que não consegui usar pelo ajax, já com o post funciona, mais o modal de jquery ui funciona soh umas 5 vezes, como seria mais ou menos com ajax?
Envie o post sem o jquery. e veja se os dados aparecem.
sem o modal tá tudo tranquilo oq vocês acham que dá pra fazer? sem usar o jquery ui e ficar bom?
Olha só o exemplo rodando, (clicar no botão perfil para entender o efeito.)
percebam que quando eu deixo $('#rev_perfil2').fadeIn('slow').html(data) abre uma div embaixo normal, mais se eu deixo $( "#rev_perfil" ).dialog( "open" ).html(data); (que é para abrir dentro do modal do ui) ele abre algumas vezes e outras não.
http://www.heitorspedroso.com.br/projectglennio/rev_consulta.php
caso achem que o código possa estar ultrapassado também aceito dicas. :D
Obrigado
rev_consulta.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/jquery-migrate-1.1.1.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.js" ></script>
<script type="text/javascript" src="js/jquery.alerts.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/jquery.maskedinput.js"></script>
<script type="text/javascript">
$(function(){
$('#rev_consulta_tabela tr:odd').addClass('zebra');
$('#rev_edit_tabela tr:odd').addClass('zebra');
});
</script>
<script type="text/javascript">
$(function(){
$("#revapaga").live('click',function(){
var codrev = ($('td:first', $(this).parents('tr')).text());
jConfirm('Tem certeza que deseja APAGAR o registro?', 'Alerta', function(r) {
if (r){
$.post('rev_apaga.php',{codrev:codrev},function(data){
jAlert('Registro apagado com sucesso.', 'Alerta');
location.reload();
});
}})
});});
</script>
<script type="text/javascript">
$(function(){
$("#revperfil").live('click',function(){
var codrev = ($('td:first', $(this).parents('tr')).text());
$.post('rev_perfil.php',{codrev:codrev}, function(data) {
$( "#rev_perfil" ).dialog( "open" ).html(data);
$('#rev_perfil2').fadeIn('slow').html(data);
});
});
});
</script>
<script>
$(function() {
$( "#rev_perfil" ).dialog({
height: 700,
width:700,
modal: true,
autoOpen: false,
});
});
</script>
<link rel="stylesheet" href="[http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css](http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css)" />
<link rel="stylesheet" href="css/alerts.css" />
<link href="css/estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top">
<div id="conttop"> <a href="index.html"><img src="images/logo.png" width="75" height="20" class="logo"/></a>
<div id="menu">
<ul>
<li><a href="#">Cadastro</a>
<ul>
<li><a href="rev_cadastrar.php">Cadastrar Franqueados</a></li>
<li><a href="rev_cli_cadastrar.php">Cadastrar Clientes</a></li>
<li><a href="serv_cadastro.php">Cadastrar Serviços</a></li>
</ul>
</li>
<li><a href="#">Clientes</a></li>
<li><a href="#">Franqueados</a></li>
<li><a href="#">Serviços</a></li>
</ul>
</div>
</div></div>
<div id="content">
<div id="contcontent">
<div id="rev_consulta">
<p class="titulo">Franqueados</p><br />
<?php
include("db.php");
$busca = mysql_query("SELECT revendedor.codrev,revendedor.rev_nome,rev_porcent FROM revendedor where rev_excluido='0' ORDER BY rev_nome ASC ");
echo ' <table border="0" class="rev_consulta_tabela" id="rev_consulta_tabela" cellpadding="0" cellspacing="0">';
echo "<tr bgcolor='#ddd'>";
echo "<td><strong>Código</strong></td>";
echo "<td><strong>Representante</strong></td>";
echo "<td><strong>Total de Clientes</strong></td>";
echo "<td><strong>% do Franq</strong></td>";
echo "<td><strong>Saldo do Franq</strong></td>";
echo "<td>Opções</td>";
echo "</tr> ";
if (mysql_num_rows($busca))
{
while ($resultado = mysql_fetch_array($busca))
{
extract($resultado);
$totalcliente = mysql_query("select count(Distinct(codcli)) from cliente where cli_rev='".$codrev."' AND cli_excluido ='0'");
$result = mysql_fetch_object($totalcliente);
foreach ($result as $total)
echo "<tr>";
echo "<td >$codrev</td>";
echo "<td >$rev_nome</td>";
echo "<td>$total</td>";
echo "<td>$rev_porcent</td>";
echo "<td>saldo</td>";
echo "<td><a href='#'><img class='icon' title='perfil' src='images/perfil.png' id='revperfil' width='19' height='20' /></a><a href='#'><img class='icon' title='mensagem' src='images/mensagem.png' id='revmensagem' width='19' height='20' /></a><a href='#'><img class='icon' title='bloquear' id='revabloqueia' src='images/bloquear.png' width='20' height='20' /></a><a href='#'><img class='icon' title='editar' src='images/edit.png' id='revedit' width='19' height='20' /></a><a href='#'><img class='icon' title='apagar' id='revapaga' src='images/remove.jpg' width='20' height='20' /></a><a href='#'><img class='icon' title='saque' id='' src='images/saqueon.png' width='20' height='20' /></a><a href='#'><img class='icon' title='clientes' id='revcliente' src='images/clientes.jpg' width='20' height='20' /></a>
</td>";
echo "</tr>";
}
echo "</table>";
}echo 'Não há registros de revendedores';
?>
<div id="rev_edit" title="Editar Franqueado"></div>
<div id="rev_perfil" title="Editar Franqueado"> </div>
<div id="rev_perfil2"></div>
</div> </div></div>
</body>
</html>Se funcionou, então xau ! rsrsrsrs....
Deve ser por causa do live, pois ele atualiza só o dom. Você precisa dar o posto pelo jquery? Pois nesse caso a melhor solução seria ajax.