Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Esto com um problema ao usar a função .load do jquery exemplo.
Tenho a página principal.
include 'teste.php';
<div id='load'>
include 'listar.php';
</div>
Quando eu rodo o load o arquivo listar.php da erro, pq ele tem que pegar alguns dados do teste.php e quando o load é dado ele perde o include, como posso fazer isso?
lembrando que o arquivo teste.php não poderá ficar dentro de listar.php....
Aguardo alguma dica, obg.
Eu faço uma busca no banco via jquery e ele mim retorna o resultado aí eu dou um $('#load').load('listar.php'); só que quando faço o load o arquivo listar.php perde o include teste.php que está acima da div. entendeu?
normal, o comportamento é esse mesmo. Se o teste não está dentro do listar, então não vai trazer nunca mesmo.
não está 'perdendo', só está seguindo o comportamento correto.
não entendi pq separar assim, mas você não pode dar um .load() do teste também ? em outra div acima da #load ?
ou então, já deixar o teste como include ?
Willian realmente é o comportamento normal, mais pensei que tivesse outro modo.. eu não posso colocar o teste.php dentro da div e nem dentro do listar.php pq quando o load for dado vou perder o post que dei nele, entendeu?
eu não posso colocar o teste.php dentro da div e nem dentro do listar.php pq quando o load for dado vou perder o post que dei nele, entendeu?
não entendi.
você deu um post no teste ? qndo ?
estão faltando diversas informações.. explique melhor a situação.
Certo, vamos lá.
Esse é meu arquivo que faz a busca e a listagem.
Lembrando que a minha estrutura está em MVC.
<script type="text/javascript" src="busca.js"></script>
<form name="formulario" id="formulario" action="javascript:void(0)" method="POST">
<div id="BUSCA">
<div class="title">Nome:</div>
<input type="text" class="text" name="nome" autocomplete="off">
</div>
<input type="submit" value="Buscar" id="salvar">
</form>
// Div que da o reload
<div id="result">
<?php include 'listar.php'; ?>
</div>
Arquivo listar.php
<?php include_once("../control/listar_control.php"); ?>
<?php
foreach($listar->dados as $dado)
{
// Aqui listo os dados.
}
?>
O sistema está ok, só que quando faço a busca ele fica os mesmos dados isso é obvio pq o controle está dentro da div que da o reload, e se eu tirar ele de dentro não funciona, alguém saberia um modo de resolver isso?
cara... você ta fazendo da forma errada isso.
a tua percepção do fato está equivocada.
Tanto faz se está em MVC ou não.
esquece o .load() okay ?
se vai enviar formulário, e espera uma resposta, use $.ajax
Willian segue o meu arquivo js.
$(function($) {
// Quando o formulário for enviado, essa função é chamada
$("#formulario").submit(function() {
var dados = $("#formulario").serialize();
// Exibe mensagem de carregamento
$("#status").html($.blockUI({ overlayCSS: { backgroundColor: '#000' } }));
// Fazemos a requisão ajax com o arquivo e enviamos os valores de cada campo através do método POST
$.post('../control/listar_control.php', dados,
function(resposta){
// Quando terminada a requisição
// Exibe o resultado
$.unblockUI();
$('#result').load('listar.php');
});
});
});
Não endenti o que você disse, poderia mim dar um exemplo, valeu.
okay... já ta usando o $.post() q é um atalho para o $.ajax
você faz conexão com o banco, e busca os dados no arquivo:
../control/listar_control.php ?
Toda a parte de banco é no listar_DAO.php que da o retorno para listar_control.php, certo.
então é nesse momento que o script está se perdendo.
o teu listar_control.php precisa buscar novamente, os dados na tabela, se não não vai atualizar mesmo.
outra alternativa, é enviar como resposta da requisição:
$.post('../control/listar_control.php', dados,
function(resposta){
// Quando terminada a requisição
// Exibe o resultado
$.unblockUI();
$('#result').html( resposta );
ai o teu ../control/listar_control.php, teria que no final da requisição, dar echo do HTML que você quer exibir.
Entendi o que você disse, vou tentar aqui pra ver se consigo passar a resposta em html, mais se você souber uma forma de rebuscar os dados, agradeço, valeu pela atenção.
se você souber uma forma de rebuscar os dados,
ai você precisa fazer isso no teu listar_control.php
poste aqui ele, se tiver duvidas qnto a isso.
Meu Control é esse.
include_once ("../model/listar_DAO.php");
class Teste
{
var $teste;
function __construct()
{
$this->teste = new Listar();
$this->teste->setNome($_POST['nome']);
$this->teste = $this->teste->ListarView();
}
}vixi cara.. tá ruim isso ai.
esqueça os include_once()
tente usar __autoload()
no lugar de var $.. para declarar atributos, use os modificadores de visibilidade
oq o método ListarView() faz ?
por enqnto parece q o teu script não está nem seguindo OO e nem MVC corretamente.
Poderia postar aí um exemplo de uma estrutura MVC corretamente, pois as que eu vi na net estão neste estilo, valeu.
qual o erro ?
mas hein?!