Ir para conteúdo

POWERED BY:

Arquivado

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

Adson aquino

.load Perde includes

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando eu rodo o load o arquivo listar.php da erro

qual o erro ?

 

quando o load é dado ele perde o include

mas hein?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Toda a parte de banco é no listar_DAO.php que da o retorno para listar_control.php, certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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();
  	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia postar aí um exemplo de uma estrutura MVC corretamente, pois as que eu vi na net estão neste estilo, valeu.

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.