duvidas com ajax e load

24/11/2014

Boa tarde.

Tenho uma pagina com instruçoes em jquery, ajax, datatables e etc.

Ela independente funciona e esta tudo ok.

Meu problema se resume a colocar dentro de outra.pagina, parece que perde toda a formataçao.
Nao sei como fazer isso.

Tem alguma forma de chamar a pagina dentro da index principal, sem perder todos os atributos que ela tem?
E sem dar interferencia de um reset dela com o reset da principal?

Estou usando o metodo load para carregar na div da principal.

PHP

Manja

Melhor resposta

25/11/2014

Micheli que bom que resolveu, Eu também sai do Delphi para a programação Web e no começo o cara "apanha" um pouco, mas é muito bom.

Sobre esse problema que você encontrou eu costumo usar uma função php que independente da hierarquia das pastas (seja na raiz ou 10 níveis acima) sempre que você chamar a função ele irá apontar para o mesmo caminho.

function urlBase(){
	$Apathweb = explode("/", $_SERVER['PHP_SELF']);
	$myFileName = array_pop($Apathweb);
	$pathweb = implode("/", $Apathweb);
	return "http://".$_SERVER['HTTP_HOST'].$pathweb."/";
}


Outra coisa que facilita também para mim é utilizar um arquivo principal que recebe os incudes das outras páginas.
Exemplo:

<?php 
	include('layout/header.php');
        // Dentro do arquivo header estão todos os meus arquivos de estilo (css)

	include('layout/menu.php');
        //menu com a referencia as pastas ou arquivos

        // aqui eu verifico qual pasta ou arquivo deverá ser chamado no include do conteúdo
	if(isset($_GET['pasta'])) $pasta = $_GET['pasta']; else $pasta = "";
	if(isset($_GET['arquivo'])) $arquivo = $_GET['arquivo']; else $arquivo = "";
	if($pasta == 'dashboard' || empty($pasta)) {
		$include = 'dashboard/index.php';
	}elseif($pasta != "" && $arquivo == "" && file_exists("$pasta")){
		if(file_exists("$pasta/index.php")){
			$include = "$pasta/index.php";
		}else{
			$include = '/erros/erro_404.php';
		}
	}elseif($pasta != "" && $arquivo != "" && file_exists("$pasta/$arquivo")){
		$include = "$pasta/$arquivo/index.php";
	}elseif($pasta != "" && $arquivo == "" && file_exists("$pasta/$arquivo.php")){
		$include = "$pasta/$arquivo.php";
	}else{
		$include = '/erros/erro_404.php';
	}
				
	include($include);
	
        // aqui estão todos os meus JS
        include('layout/footer.php');


qualquer duvida estamos ai...

Fernando Blomer

Responder Citar

Outras Respostas

24/11/2014

Fernando Blomer

Micheli, não sei se entendi corretamente, mas imagino que se vc chamar na index os arquivos de CSS e JS que fazem parte da pagina que você está chamando na index irá resolver.
Responder Citar

24/11/2014

Manja

É isso sim Fernando, só que nem todos os arquivos funcionam chamando na principal.
Parece que da interferencia, algo do tipo. E nao é problema de caminho.
Entao queria ja chamar ela pronta, sem ter que colocar os arquivos na principal.
Responder Citar

24/11/2014

Fernando Blomer

Então pode ser algum problema de "interferência" mesmo entre os JS que vc utiliza...
Vamos por eliminação, os estilos (CSS) estão funcionando corretamente? vc esta usando quais arquivos de JS?
Responder Citar

24/11/2014

Manja

Nao, nem os estilos vem inteiros.
Por exemplo aqui uso:

//biblioteca js normal
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../classes/jquery-2.1.1.js"></script>

//esse pra calendario dentro do input
<script type="text/javascript" src="../classes/calendario/jquery-ui.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" />

//esse que monta a tabela.
<script type="text/javascript" src="../classes/DataTables-1.10.3/media/js/jquery.dataTables.js"></script>
<link rel='stylesheet' type='text/css' media='screen' href="../classes/DataTables-1.10.3/media/css/jquery.dataTables.css"/>

Fica assim:
[img]http://arquivo.devmedia.com.br/forum/imagem/259421-20141124-173843.jpg[/img]

Agora quando coloco na principal fica assim:
[img]http://arquivo.devmedia.com.br/forum/imagem/259421-20141124-174000.jpg[/img]

Perceba que ele perde as setinhas de ordenaçao, agrupamento e o calendario tb...
Fora que quando clico no limpar dessa ultima, limpa a pagina inteira.


Nao tem uma forma de trazer ela pronta, sem eu ter que inserir todos os scripts na principal?
Porque tem os scripts que montam a tabela, alem do arquivo js e css.....
Responder Citar

24/11/2014

Fernando Blomer

Certo...

estes arquivos são apenas referentes a página interna correto?

//biblioteca js normal
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../classes/jquery-2.1.1.js"></script>

//esse pra calendario dentro do input
<script type="text/javascript" src="../classes/calendario/jquery-ui.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" />

//esse que monta a tabela.
<script type="text/javascript" src="../classes/DataTables-1.10.3/media/js/jquery.dataTables.js"></script>
<link rel='stylesheet' type='text/css' media='screen' href="../classes/DataTables-1.10.3/media/css/jquery.dataTables.css"/>


Na index vc chama algum JS? que seja só da index?
Responder Citar

24/11/2014

Manja

Sim, na principal tenho outros:

//biblioteca normal
<script type="text/javascript" src="classes/jquery-2.1.1.js"></script>

//necessario para cidades-estados
<script type="text/javascript" src="scripts/jquery.min.js"></script>
<script type="text/javascript" src="scripts/cidades-estados-1.0-utf8.js"></script>

//validaçao e mascara de formularios
<script type="text/javascript" src="scripts/jquery.mask.js"></script>
<script type="text/javascript" src="scripts/validate.js"></script>
Responder Citar

24/11/2014

Fernando Blomer

Certo... aqui já temos um problema

// Index
//biblioteca normal
<script type="text/javascript" src="classes/jquery-2.1.1.js"></script>

//necessario para cidades-estados
<script type="text/javascript" src="scripts/jquery.min.js"></script>


// Outra página
//biblioteca js normal
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../classes/jquery-2.1.1.js"></script>


Vc está invocando o jquery varias vezes e em versões diferentes... não sei dizer se o problema é exclusivamente este, mas isso pode dar problema...
O ideal seria vc separar os arquivos de estilo (css) dos arquivos JS e agrupar os arquivos JS para ver se não existe redundância na invocação dos mesmos.

Faça isso e vamos ver o resultado.
Responder Citar

24/11/2014

Fernando Blomer

Outra coisa que notei é como vc esta chamando os arquivos...
Veja

// Index
//biblioteca normal
<script type="text/javascript" src="classes/jquery-2.1.1.js"></script>

// Outra página
//biblioteca js normal
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../classes/jquery-2.1.1.js"></script>


Na index vc está colocando em um diretório e os itens da outra página está em outro nível ( usando o ../ )

classes/jquery-2.1.1.js
../classes/jquery-2.1.1.js
Responder Citar

24/11/2014

Manja

Tambem nao Fernando.
Deixei assim na principal:

<link rel='stylesheet' type='text/css' media='screen' href="classes/DataTables-1.10.3/media/css/jquery.dataTables.css"/> <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" /> <!-- <link rel="stylesheet" href="style.css" type="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script type="text/javascript" src="scripts/jquery.min.js"></script> <script type="text/javascript" src="scripts/cidades-estados-1.0-utf8.js"></script> <script type="text/javascript" src="scripts/jquery.mask.js"></script> <script type="text/javascript" src="scripts/validate.js"></script> --> <script type="text/javascript" src="classes/jquery-2.1.1.js"></script> <script type="text/javascript" src="classes/DataTables-1.10.3/media/js/jquery.dataTables.js"></script> <script type="text/javascript" src="classes/calendario/jquery-ui.js"></script>


e na ageda mesmo tudo comentado.
Tb nao vai.
Responder Citar

24/11/2014

Manja

exato, porque dependendo do local o caminho muda.
a index ta na raiz.
a outra pagina (agenda) ja esta dentro de uma pasta principal, por isso que muda.
Responder Citar

24/11/2014

Manja

Fernando, achei o erro.
Dentro da montagem da tabela, tem um caminho para transformar os campos em portugues.
Chamando da pagina principal, esqueci de alterar o caminho dele.
Por isso ficava diferente.

Obrigada pela ajuda.
Minha opiniao: para quem trabalha com delphi, pegar linguagens tao misturadas como é a programaçao para internet, é muito "bagunçado"....
Ainda to engatinhando, ms é muito sofrimento.
Como neste exemplo, chamando a pagina dentro da outra, nao teria necessidade de "refazer codigos" na principal....
Responder Citar