atualizar datatable com jquery e php

16/10/2014

0

PHP

Boa tarde.
Duvida simples mas nao sei como fazer.
Preciso que ao selecionar o registro no grid e excluí-lo ou atualizar, ou inserir, o datatables atualize.
Está inserindo, editando excluindo perfeitamente no banco, porem o datatables nao atualiza, tenho q dar f5 na pagina.

Meu codigo para montar o datatables:

echo "<script type='text/javascript'>
$(document).ready(function() {
$('#tabelahorario').dataTable();
} );
</script>

<form id='formtabela' name='formtabela' method='post' >
<table id='tabelahorario' class='display' cellspacing='0' width='100'>
<thead>
<tr>
<th>Ordem</th>
<th>Codigo Profissional</th>
<th>Nome Profissional</th>
<th>Hora Inicial</th>
<th>Hora Final</th>
<th>Dia da Semana</th>
</tr>
</thead>
<tbody>";

while ($linha=mysql_fetch_array($resultado))
{
$codjor = ($linha["cod_jornada"]);
$nome = utf8_encode(($linha["nome_prof"]))." ".utf8_encode(($linha["sobrenome"]));
$codigo = ($linha["cod_profissional"]);
$hora_ini = substr($linha["hora_ini"],0,5);
$hora_fim = substr($linha["hora_fim"],0,5);
$dia_sem = utf8_encode(($linha["dia_sem"]));

echo"<tr>
<th>$codjor</th>
<th>$codigo</th>
<th>$nome</th>
<th>$hora_ini</th>
<th>$hora_fim</th>
<th>$dia_sem</th>
</tr>";
}
echo "</tbody>
</table>
</form>";


Meu codigo para selecionar no datatables:

echo "<script type='text/javascript'>
$(document).ready(function(){

$('#tabelahorario tbody').on('click', 'tr', function () {
var codjorn = $('th', this).eq(0).text();
var codprof = $('th', this).eq(1).text();
var horaini = $('th', this).eq(3).text();
var horafim = $('th', this).eq(4).text();
var diasem = $('th', this).eq(5).text();

$('#txtInvisivel').val(codjorn);
$('#selJorProf').val(codprof);
$('#selJorDia').val(diasem);
$('#selJorHoraEnt').val(horaini);
$('#selJorHoraSai').val(horafim);

$('#btnCadastrar').prop('disabled', true);
$('#btnAlterar').prop('disabled', false);
$('#btnExcluir').prop('disabled', false);
} );
});
</script>";



Meu codigo para excluir:

if (isset($_POST["btnExcluir"]))
{
if ($_POST["selJorProf"] == "")
{
echo "<script type='text/javascript'>
$(document).ready(function()
{
alert('Por favor Selecione Um Profissional.');
});
</script>";

}
else
{
//INSTANCIANDO UM NOVO OBJETO DO TIPO CONEXÃO
$c = new Conexao();

//CRIANDO O COMANDO SQL
$comandosql = "delete from jornada_trab where cod_prof = '".$_POST["selJorProf"]."' and dia_sem = '".$_POST["selJorDia"]."' ";


//REALIZANDO O COMANDO SQL
$c -> criarConsulta($comandosql);

//ATRIBUINDO O RESULTADO DO COMANDO A UMA VARIÁVEL
$resultado = $c -> criarConsulta($comandosql);

if ($resultado == 1)
{
echo "<script type='text/javascript'>
$(document).ready(function()
{
$('#tabelahorario').Close();
$('#tabelahorario').Open();
alert('Dados Excluidos com Sucesso.');
});
</script>";


}

}

}
Manja

Manja

Responder

Post mais votado

17/10/2014

Micheli aqui eu faço assim:


Exemplo de um cadastro de usuarios

Datatable

<table id="basicTable" class="table table-striped table-bordered responsive">
   <thead class="">
      <tr>
	   <th>Nome</th>
	   <th>E-mail</th>
	   <th>Ações</th>
       </tr>
    </thead>
     <tbody>
        <?php
		for($i = 0; $i < $resultado['totalRegistros']; $i++){
			echo"<tr>
				<td>".$resultado[$i]['nome']."</td>
				<td>".$resultado[$i]['email']."</td>
				<td>
				   <a href='editar/".$resultado[$i]['id_usuario']."/'>
					<button class='btn btn-default tooltips' type='button' data-toggle='tooltip' title='' data-original-title='Editar'>
						<i class='fa fa-edit'></i>
					</button>
				   </a>
  
                                     // JavaScript para Exclusão
				   <a href='javascript:excluir(".$resultado[$i]['id_usuario'].")'>
				            <button class='btn btn-danger tooltips' type='button' data-toggle='tooltip' title='' data-original-title='Excluir'>
					          <i class='fa fa-trash-o'></i>
					    </button>
				   </a>
				</td>
			   </tr>";
			}?>
	</tbody>
</table>




JavaScript para Exclusão
Uso o componente bootbox para dar a mensagem de confirmação e caso seja confirmada a exclusão redireciono para a mesma página com o id a ser excluído.
<script type="text/javascript">
	function excluir(id) {
		bootbox.confirm("Você deseja realmente excluir esta informação?", function(result) {
			if(result) {
				window.location.href = id+'/';
			}
		});
	}
</script>




No inicio da mesma página tenho o seguinte código:



include('class/dadosUsuario.class.php');
	$class_dados = new dadosUsuario;	
	$class_dados->dados();		
	if(isset($_GET['parametro1']) && $_GET['parametro1'] != ''){		
		$resultado = $class_dados->excluiDado($_GET['parametro1']);
		if(isset($resultado) && $resultado == ''){
			$_SESSION['resultado'] = 'exclusao';
			echo "<meta http-equiv='Refresh' content='0; url=../'>";
		}elseif(isset($resultado) && $resultado == 'erro'){
			$_SESSION['resultado'] = 'erro';
			echo "<meta http-equiv='Refresh' content='0; url=../'>";
		}
	}
	$resultado = $class_dados->imprimeDados();



onde verifico se existe informação para ser excluída caso sim chamo o método para a exclusão e dou um refresh.

não sei se isso te ajuda e/ou responde sua pergunta... caso de duvida é só avisar...

Fernando Blomer

Fernando Blomer
Responder

Mais Posts

16/10/2014

Fernando Blomer

Olá amigo, imagino que ReloadAjax pode te ajudar, porem nunca trabalhei com ele da uma olhada aqui.
Responder

16/10/2014

Ronaldo Lanhellas

Você pode tentar colocar uma action no seu form:

<form id='formtabela' name='formtabela' method='post' action='' >


Ou adicionar um redirecionamento para a mesma página depois da exclusão, atualização ou cadastro:

header("Location: http://www.yourwebsite.com/user.php"); 
Responder

16/10/2014

Manja

Ronaldo:

o header da certo atualiza sim, porem ele nao me da a mensagem de exlcusao antes de resetar a pagina:

if ($resultado == 1)
{
echo "<script type='text/javascript'>
$(document).ready(function()
{
alert('Dados Excluidos com Sucesso.');
});
</script>";

//Esta pulando o pedaço acima.

header("Location: esqueleto-jornada.php");


}
Responder

16/10/2014

Manja

Fernando, o Reload nem funciona....
nao sei se falta algo:

//1 para exclusao como exemplo:

if ($resultado == 1)
{
echo "<script type='text/javascript'>
$(document).ready(function()
{
var table = $('#tabelahorario').dataTable();
table.fnReloadAjax();

alert('Dados Excluidos com Sucesso.');
});
</script>";

}
Responder

16/10/2014

Wander Santos

Esse datatable vc passa ele numa pagina so ou tem uma pagina e vc chma esse datatable com ajax dentro dessa pagina?
Responder

16/10/2014

Manja

só separei codigo html em uma, e codigo php com jquery em outra.
Responder

17/10/2014

Wander Santos

Tem como postar o cod?
Responder

17/10/2014

Manja

Perfeito Fernando.
Na realidade vc separa por classses, deu pra entender bem como foi feito.
Fica muito legal.
Eu como estou iniciando ainda nao sei direito como fazer isso...é muita mistureira de codigo(uma hora vc usa jquery, outra php, outra css e outra html) pra quem vem de delphi.
Mas o codigo ajudou sim.
Ao inves do header, coloquei somente a linha window.location.href = 'esqueleto-jornada.php';
Funcionando e atualizando.

Obrigada.
Responder

17/10/2014

Fernando Blomer

Ehehehe... na verdade não sou nenhum expert tambem...
qualquer duvida estamos ai ;)
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar