LOCAIS

ARQUIVO

ASSINE OS FEEDS

Software Livre

Dicas de sites

Publicidade


SSD Virtual Server 5$/mo HD 20GB 512Ram






Publicado em 25 de fevereiro de 2008 ás 02:55

Executar javascript no AJAX.

Vejo que como eu demorei muito tempo para achar está solução vou publicar aqui o código para ajudar os demais que não conseguirão ainda…. ^^ …mais detalhes em breve!

function extraiScript(texto){
//desenvolvido por Skywalker.to, Micox e Pita.
//http://forum.imasters.uol.com.br/index.php?showtopic=165277
var ini, pos_src, fim, codigo;
var objScript = null;
ini = texto.indexOf('<script', 0)
while (ini!=-1){
var objScript = document.createElement("script");
//Busca se tem algum src a partir do inicio do script
pos_src = texto.indexOf(' src', ini)
ini = texto.indexOf('>', ini) + 1;

//Verifica se este e um bloco de script ou include para um arquivo de scripts
if (pos_src < ini && pos_src >=0){//Se encontrou um "src" dentro da tag script, esta e um include de um arquivo script
//Marca como sendo o inicio do nome do arquivo para depois do src
ini = pos_src + 4;
//Procura pelo ponto do nome da extencao do arquivo e marca para depois dele
fim = texto.indexOf('.', ini)+4;
//Pega o nome do arquivo
codigo = texto.substring(ini,fim);
//Elimina do nome do arquivo os caracteres que possam ter sido pegos por engano
codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
// Adiciona o arquivo de script ao objeto que sera adicionado ao documento
objScript.src = codigo;
}else{//Se nao encontrou um "src" dentro da tag script, esta e um bloco de codigo script
// Procura o final do script
fim = texto.indexOf('</script>', ini);
// Extrai apenas o script
codigo = texto.substring(ini,fim);
// Adiciona o bloco de script ao objeto que sera adicionado ao documento
objScript.text = codigo;
}

//Adiciona o script ao documento
document.body.appendChild(objScript);
// Procura a proxima tag de <script
ini = texto.indexOf('<script', fim);

//Limpa o objeto de script
objScript = null;
}
}

no ajax fica:

if (xmlhttp.readyState==4){
// coloca o valor no objeto requisitado
texto=unescape(xmlhttp.responseText.replace(/\+/g," "));
document.getElementById(destino).innerHTML=texto;
// executa scripts
extraiScript(texto);
}

“uma coisa interessante, coloque o codigo js nas paginas q você carrega com ajax e o titulo do navegador vai mudar conforme o local, ex:”

<script>
document.title = ".:NomeDoSite - Historia";
</script>

<script>
document.title = ".:NomeDoSite - Busca";
</script>

Fonte: http://forum.imasters.uol.com.br/index.php?showtopic=165277

Publicado em 24 de fevereiro de 2008 ás 15:37

Cria data de acordo com número de dias informado.

SCRIPT:

<script language="javascript" type="text/javascript">
//*************************************//
// SCRIPT CALCULA NÚMERO DE DIAS       //
// AUTOR      : Édson Kuzniewski (Br0w)//
// E-MAIL     : contato@edsonk.com     //
// DATA       : 27/06/2007             //
// ATUALIZAÇÃO: 24/02/2008             //
// VERSÃO     : 1.1.0.0                //
//*************************************//

function calculaDias(dtInicio, dias){
	var flagDT = false;
	var flagD  = false;
	var alerta="[ERROS ENCONTRADOS]=================\n\n";
	if( dtInicio == null || dtInicio == ""){
		alerta = alerta+'Campo [DATA INICIO] em branco!\n';
	}else{
		flagDT = true;
		if( verificaData(dtInicio) ){
			flagDT = true;
		}else{
			flagDT = false;
			alerta = alerta+'Campo [DATA INICIO] não é uma data válida!\n';
		}
	}
	if( dias == null || dias == ""){
		alerta = alerta+'Campo [DIAS] em branco!\n';
	}else{
		flagD = true;
		if( isInt(dias) ){
			result = true;
		}else{
			flagD = false;
			alerta = alerta+'Campo [DIAS] não é um número inteiro válido!\n';
		}
	}

	/* Verifica data */
	function verificaData(dt) {
		var result = false;

		var pFmt2 = 5;
		var reDate1 = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;
		var reDate2 = /^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/;
		var reDate3 = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
		var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
		var reDate5 = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
		var reDate = reDate4;

		eval("reDate = reDate" + pFmt2);
		if (reDate.test(dt)) {
			result = true;
		} else if (dt != null && dt != "") {
			result = false;
		}
		if (result == false) {
			return false
		}else{
			return true
		}
	}

	/* Verifica se é inteiro! */
	function isInt(valor) {
		var temp=parseInt(valor);
		if (isNaN(temp)){
	   		return false;
		}else{
	 		return valor==temp && valor.toString()==temp.toString();
		}
	 }

	if( flagDT == true && flagD == true ){
		um_dia = (100*60*60*24);
		diass = ((dias*um_dia)*10);
		data = dtInicio.split("/");
		dia = data[0];
		mes = (data[1]-1);
		ano = data[2];
		dat = new Date(ano,mes,dia,0,0,0);
		emiss = (dat.getTime()+diass);
		dataFinal = new Date(emiss);
		calc01 = dataFinal.toLocaleDateString();
		ult = dataFinal.toLocaleDateString().split(" ");
		//[ DIA ]====================================\
		diaN="";
		if(ult[1] < 10){
			diaN="0"+ult[1];
		}else{
			diaN=ult[1];
		}
		//===========================================/
		//[ MES ]====================================\
		mesN="";
		if(ult[3] == "janeiro"){ mesN="01"; }
		if(ult[3] == "fevereiro"){ mesN="02"; }
		if(ult[3] == "março"){ mesN="03"; }
		if(ult[3] == "abril"){ mesN="04"; }
		if(ult[3] == "maio"){ mesN="05"; }
		if(ult[3] == "junho"){ mesN="06"; }
		if(ult[3] == "julho"){ mesN="07"; }
		if(ult[3] == "agosto"){ mesN="08"; }
		if(ult[3] == "setembro"){ mesN="09"; }
		if(ult[3] == "outubro"){ mesN="10"; }
		if(ult[3] == "novembro"){ mesN="11"; }
		if(ult[3] == "dezembro"){ mesN="12"; }
		//===========================================/
		document.form.dtFim.value=''+diaN+"/"+mesN+"/"+ult[5];
	}else{
		alert(''+alerta);
	}
}
</script>

HTML:

<form name="form" method="post" action="">
<table width="100%"  border="0" cellpadding="5" cellspacing="0" class="preempenhoTable">
  <tr>
    <td align="left" valign="top" scope="col"><strong>Data INIICO:</strong>
      <input name="dtInicio" type="text" id="dtInicio" size="12" maxlength="10" value="">
    </td>
    <td align="center" valign="top" scope="col"><strong>+ Dias:
      <input name="dias" type="text" id="dias" size="3" maxlength="4" />
      <input name="calc" type="button" id="calc" value="Calcular"
       onclick="calculaDias(dtInicio.value,dias.value);" />
    </strong></td>
    <td align="right" valign="top" scope="col"><strong>Data FIM:</strong>
        <input type="text" name="dtFim" id="dtFim" size="10" maxlength="10" value="" />
    </td>
  </tr>
</table>
</form>

RESULTADO

Publicado em 24 de fevereiro de 2008 ás 02:39

Paginação em PHP + mySQl, USANDO A BIBLIOTECA “ADODB” (class.Paginacao.php)

<?php
/*
 * CLASSE DE PÁGINAÇÃO EM PHP + MYSQL, USANDO A BIBLIOTECA "ADODB"
 * AUTOR : Édson Kuzniewski (Br0w)
 * E-MAIL: contato@edsonk.com
 * DATA  : 22/02/2008
 * VERSÃO: 1.0.0.0
 */

/**
[MODO DE USAR]==============================================================================================\
 //Adicione a classe na página no qual ira usar
 require_once("class.Paginacao.php");
 //Crie um sql no qual queira que o resultado seja mostrado com paginação;***********************************
 $sql = "SELECT *
		   FROM tabela
		  WHERE se tiver
	   ORDER BY id ASC ou DESC";

 $paginacao = new Paginacao();   			//Cria a paginação;
 $paginacao->setMaximo("20");    		   //Define numéro de itens por página se não fica o padrão de 10;
 $paginacao->setEstilo("2");		 		   //Define o estilo de paginação, mude se quizer 1 ou 2;
 $paginacao->setBtnPrimeiro("[Primeiro]");  //Define texto do botão de padrão já está definido mude se quizer;
 $paginacao->setBtnUltimo("[Último]");      //Define texto do botão de padrão já está definido mude se quizer;
 $paginacao->setBtnAnterior("[Anterior]");  //Define texto do botão de padrão já está definido mude se quizer;
 $paginacao->setBtnProximo("[Próximo]");    //Define texto do botão de padrão já está definido mude se quizer;
 $paginacao->setBtnPrimeiroOn(true);        //Define texto do botão de padrão já está definido mude se quizer;
 $paginacao->setBtnUltimoOn(true);          //Define texto do botão de padrão já está definido mude se quizer;
 $paginacao->__start($db, $sql); 		   //Inicia a páginação;
 $i=0;
 while($row = $paginacao->getResult()->FetchNextObject()){
 		echo"linha com item nº $i";
		$i++;
 }

 //Para mostrar a paginação coloque em sua página HTML ou PHP:***********************************************
 $paginacao->getAnterior("estilo_on","estilo_off");  //Cria botão anterior, os estilos referidos são CSS
 $paginacao->getPaginas("estilo_paginas");           //Cria nº de pg., os estilos referidos são CSS
 $paginacao->getProximo("estilo_on","estilo_off");   //Cria botão próximo, os estilos referidos são CSS

 //Sendo assim junte todos que o resultado seria:************************************************************
 $paginacao->getAnterior("paginacao_on","paginacao_off").$paginacao->getPaginas("paginacao_paginas").$paginacao->getProximo("paginacao_on","paginacao_off");

 //RESULTADO DEPENDE DO ESTILO******************************************************************************
 [ESTILO 1]
 < Anterior 1 2 3 4 [5] 6 7 8 Próximo >
 < Anterior 1 2 3 4 5 [6] 7 8 Próximo >
 o número de páginas total é mostrado sendo no exemplo 8 páginas . . .

 [ESTILO 2]
 << Primeiro < Anterior 1 2 3 [4] 5 6 7 Próximo > Último >>
 se tiver mais que 7 ele começa a tira 1 no começo e adicionar 1 no fim . . .
 << Primeiro < Anterior 2 3 4 [5] 6 7 8 Próximo > Último >>

[FIM DO MODO DE USAR]=======================================================================================/
**/

//=====================\
//[ INICIO DA CLASSE ] |
//=====================/
class Paginacao {
	var $maximo; 							  //variavel de número de itens por página;
	var $pagina;							  //controle do número da página;
	var $mat;								  //variavel para calculo de páginas;
	var $inicio;							  //controle de exibição de itens inicio;
	var $paginas;							  //variavel para calculo de páginas;
	var $linhas;							  //número total de itens;
	var $anterior;							  //controle de página anterior;
	var $proximo;							  //controle de proxima página;
	var $result;							  //result do sql;
	var $nPaginas 			= 0;			  //número total de páginas;
	var $btn_primeiro 		= "<< Primeiro";	//texto do botão com o link para a primeiro página;
	var $btn_anterior 		= "< Anterior";	 //texto do botão com o link para página anterior;
	var $btn_proximo		= "Próximo >";	 //texto do botão com o link para próxima página;
	var $btn_ultimo			= "Último >>";	//texto do botão com o link para a última página;
	var $sp					= "/;\\";		  //separa botões de nº pg. OBS: use ;(ponto e virgula para separar os lados);
	var $btn_primeiro_on	= true;			  //ativa e desativa o botão primeiro (true|false);
	var $btn_ultimo_on		= true;			  //ativa e desativa o botão último (true|false);
	var $estilo				= 2;			  //define estilo de paginação;

	/* CONSTRUTOR */
	function Paginacao(){ }

	/* SETA O NUMERO DE ITENS POR PÁGINA */
	function setMaximo($var){
		$this->maximo = $var;
	}

	/* SETA SEPARADORES DE BOTÕES DE NÚMERO DE PÁGINAS */
	function setSP($var){
		$this->sp = $var;
	}

	/* SETA O TEXTO DO BOTÃO PRIMEIRO */
	function setBtnPrimeiro($var){
		$this->btn_primeiro = $var;
	}

	/* SETA O TEXTO DO BOTÃO ANTERIOR */
	function setBtnAnterior($var){
		$this->btn_anterior = $var;
	}

	/* SETA O TEXTO DO BOTÃO PROXIMO */
	function setBtnProximo($var){
		$this->btn_proximo = $var;
	}

	/* SETA O TEXTO DO BOTÃO ÚLTIMO */
	function setBtnUltimo($var){
		$this->btn_ultimo = $var;
	}

	/* DEFINE SE O BOTÃO PRIMEIRO VAI SER EXIBIDO */
	function setBtnPrimeiroOn($var){
		$this->btn_primeiro_on = $var;
	}

	/* DEFINE SE O BOTÃO ÚLTIMO VAI SER EXIBIDO */
	function setBtnUltimoOn($var){
		$this->btn_ultimo_on = $var;
	}

	/* DEFINE O ESTILO DE PAGINAÇÃO */
	function setEstilo($var){
		$this->estilo = $var;
	}

	/* INICIALIZAÇÃO DO OBJETO */
	function __start($db, $sql){
		if($this->maximo == ""){ //se não for setado número de itens por página pega o padrão;
			$this->maximo = 10;
		}
		if($_REQUEST["pagina"] == "") {
			$this->pagina = "1"; //se página igual a branco seta página = 1;
		}else{
			$this->pagina = $_REQUEST["pagina"]; //pega o número da página passada por parâmetro ex:?pagina=2;
		}
		$this->mat = $this->pagina - 1; //inicia com a linha zero do banco;
		$this->inicio = $this->mat * $this->maximo; //calcula o valor de inicio da lista de acordo com a página;

		$limita = $sql." LIMIT ".$this->inicio.",".$this->maximo; //gera o sql para pesquisa no banco com a limitação;
		$this->result = $db->Execute($limita); //executa sql com a limitação;

		$result = $db->Execute($sql); //executa sql sem a limitação;
		$this->linhas = $result->RecordCount(); //pega valor total de itens do banco;

		$this->paginas = ceil($this->linhas / $this->maximo) - 1; //pega número total de páginas pela quantidade máxima de itens;
		$this->nPaginas = $this->paginas; //guarda valor na variavel;

		$this->anterior = $this->pagina - 1; //informa o a página anterior;
		$this->proximo = $this->pagina + 1; //informa a próxima página;
	}

	/* RETORNA O RESULTADO DO SQL COM O LIMITE DE ITENS POR LINHA */
	function getResult(){
		return $this->result;
	}

	/* RETORNA O BOTÃO PRIMEIRO E O ANTERIOR */
	function getAnterior($on, $off){
		if($this->btn_primeiro_on == true && $this->estilo == 2){ //se botão primeiro ativado;
			if($this->pagina == 1){ //se é primeira página;
				echo "<span class=\"".$off."\">".$this->btn_primeiro."</span> "; //botão off
			}else{
				echo "<span class=\"".$on."\"><a href=\"?pagina=1\">".$this->btn_primeiro."</a></span> "; //botão on
			}
		}
		if($this->anterior > 0){ //se anterior maior que 0;
			echo "<span class=\"".$on."\"><a href=\"?pagina=".$this->anterior."\">".$this->btn_anterior."</a></span> "; //botão on
		}else{
			echo "<span class=\"".$off."\">".$this->btn_anterior."</span> "; //botão off
		}
	}

	/* RETORNA O NÚMERO DE PÁGINAS PARA NAVEGAÇÃO */
	function getPaginas($on){
		$sp = explode(";", $this->sp); //pega variaves de separação de botões de nº de pg;

		//===============================================================\
		//[ EXIBE PAGINAÇÂO NO ESTILO                                  ] |
		//[ < Anterior 1 2 3 4 [5] 6 7 8 Próximo >                     ] |
		//[ < Anterior 1 2 3 4 5 [6] 7 8 Próximo >                     ] |
		//[ o número de páginas total é mostrado . . .                 ] |
		//===============================================================|
		if($this->estilo == 1){
			echo" <b>".$sp[0]."</b> ";
			for($i=0; $i <= $this->nPaginas; $i++){
				$pag =  $i +1;
				echo " <span class=\"".$on."\"><a href=\"?pagina=".$pag."\">";
				if($pag == $this->pagina){
					echo "[<b>".$pag."</b>]";
				}else{
					echo $pag;
				}
				echo "</a></span> ";
			}
			echo" <b>".$sp[1]."</b> ";
		}
		//===============================================================|
		//[ FIM PG 01 ]                                                  |
		//===============================================================/

		//===============================================================\
		//[ EXIBE PAGINAÇÂO NO ESTILO                                  ] |
		//[ << Primeiro < Anterior 1 2 3 [4] 5 6 7 Próximo > Último >> ] |
		//[ << Primeiro < Anterior 2 3 4 [5] 6 7 8 Próximo > Último >> ] |
		//===============================================================|
		if($this->estilo == 2){
			echo" <b>".$sp[0]."</b> "; //separador
			if($this->pagina < 5){
				$i = 0;
				if($this->nPaginas > 5){
					$j = 6;
				}else{
					$j = $this->nPaginas;
				}
			}else{
				if($this->pagina == 5 && $this->nPaginas <= 5){
					$i = 0;
					$j = $this->pagina - 1;
				}else{
					if($this->pagina <= ($this->nPaginas + 1)){
						$i = ($this->pagina - 4);
						$j = $this->pagina + 2;
						if($j > $this->nPaginas){
							if($this->pagina == ($this->nPaginas+1)){
								$j = $this->pagina - 1;
								$teste = ($this->nPaginas + 3) - $j;
								$i = $i - $teste;
							}else{
								if($this->pagina == 6){
									$j = $this->pagina + 1;
								}else{
									$i = ($this->pagina - 5);
									if($j > $this->nPaginas){
										$j = $this->nPaginas;
										if(($this->pagina+1) == ($this->nPaginas+1)){
											$teste = ($this->nPaginas + 1) - $j;
											$i = $i - $teste;
										}
									}
								}
							}
						}
					}else{
						$i = 0;
						$j = $this->nPaginas;
					}
				}
			}
			for($i; $i <= $j; $i++){
				$pag =  $i +1;
				echo " <span class=\"".$on."\"><a href=\"?pagina=".$pag."\">";
				if($pag == $this->pagina){
					echo "[<b>".$pag."</b>]";
				}else{
					echo $pag;
				}
				echo "</a></span> ";
			}
			echo" <b>".$sp[1]."</b> "; //separador;
		}
		//===============================================================|
		//[ FIM PG 02 ]                                                  |
		//===============================================================/
	}

	/* RETORNA O BOTÃO PROXIMO E O ÚLTIMO */
	function getProximo($on, $off){
		if($this->pagina <= $this->paginas){ //se página menor ou igual a numero total de páginas;
			echo "<span class=\"".$on."\"><a href=\"?pagina=".$this->proximo."\">".$this->btn_proximo."</a></span> "; //botão on
		}else{
			echo "<span class=\"".$off."\">".$this->btn_proximo."</span> "; //botão off
		}
		if($this->btn_ultimo_on == true  && $this->estilo == 2){ //se botão último ativado
			if($this->pagina > $this->nPaginas){ //se página maior que número total de páginas;
				echo "<span class=\"".$off."\">".$this->btn_ultimo."</span> "; //botão off;
			}else{
				echo "<span class=\"".$on."\"><a href=\"?pagina=".($this->nPaginas+1)."\">".$this->btn_ultimo."</a></span> "; //botão on
			}
		}
	}
}
//==================\
//[ FIM DA CLASSE ] |
//==================/

?>

Download adodb-php-4-and-5
Download adodb-php5-only

Página 11 de 11« Primeira...7891011