duvidas com ajax e load

24/11/2014

0

PHP

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.
Manja

Manja

Responder

Post mais votado

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

Fernando Blomer
Responder

Mais Posts

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

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

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

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

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

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

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

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

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

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

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar