Duvida js e ajax

[code]// JavaScript Document
//ajax.js

// request = false;
var REQ_FIM = 4;
var REQ_OK = 200;

function stateChangeListener() { //Função ativada a cada mudança de status na comunicação com o servidor de transferencia
	if (request.readyState != REQ_FIM) {
		return;
	}
	
	if (request.status == REQ_OK) {
		recebe(request.responseText);
		request=false;
	} 
	return;
}

function ajax(url,params) {// Função que envia a url e seus parametros para o servidor de transferencia (AJAX)
	tmpUrl = url;
	tmpParams = params;
	
	if(window.XMLHttpRequest) {
		request = new window.XMLHttpRequest();
	} else if (window.ActiveXObject) {
		request = new window.ActiveXObject("Microsoft.XMLHTTP");
	}
	if(request) {
		request.onreadystatechange = stateChangeListener;
		request.open("POST", url, true);
		request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		if (typeof params == "undefined") {
			request.send();
		} else {
			request.send(params);
		}
	}
}

function recebe(msg) {// Função que recebe a mensagem do servidor de transferencia e insere seu conteudo na área "painel"
    P = document.getElementById("painel");
	P.innerHTML = msg;
	URL_ATUAL = tmpUrl;
	PARAMS_ATUAL = tmpParams;
	
	alert(P.getObjetct());
	
	
}

[/code]
===============

<!--textoJS.php-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="sotexto.css" /> 
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<?php file_put_contents("textoJS.txt","Funcionoooooooooooou"); ?>
<div>
<h1>Texto mais JavaScript</h1>

<script type='text/JavaScript'>

	document.write("Texto escrito por java scriptTT");
</script>

<h1> H1</h1>

<!--<IFRAME name=palco src="testeframe.html" frameBorder=10 width=400 height=150 scrolling=auto></IFRAME>-->
</div>
</body>
</html>

======================

<-- ajax.html -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
<style type='text/css'>
    
		
	#tudo {width:1004px;
			margin-left:auto;
			margin-right:auto;
	}
	
	#princ {float:left;
			width:inherit;
		    background-color:#CCC}

	#cab {width:inherit;
		  height:100px}
	
	#nav {width:inherit;
		  height:30px}
	
	#menu {width: 200px;float:left}
		   
    #painel {width:800px;
			float:left;
			background-color:#FAFAFA}
			  
	#rodape {float:left;
	         width:1000px;
			 height:40px;
			 }
			 
	.menuItem {min-height:30px;
	           background-color:#FFC;
			   vertical-align:middle;
			   display:block;
			   width:inherit;
			   text-align:left;
			   border:none;
			   cursor:pointer;
			   margin-bottom:2px}
			   
	.novoLink {cursor:pointer; color:#00C}
	
</style>

<script type="text/javascript" src="ajax.js"></script>
</head>

<body>
<div id="tudo">
    <div id='princ'>
      <div id='cab'>
          <p>Cabecalho</p>
      </div>
      <div id='nav'>
          <p>Nevagação principal</p>
      </div>
      <div id='menu'>
          <h3>Menu esquerdo</h3>
		  
          <button class='menuItem' onClick='ajax("soTexto.php")'>Só texto</button>
          <button class='menuItem' onClick='ajax("textoJS.php")'>texto com java script</button>
		  
		  
      </div>
       <div id='painel'>
          <p>Area de aplicação</p>
		
      </div>
      
      <div id='rodape'>
          <p>Rodape</p>
      </div>
    </div>
</div>
</body>
</html>

No ajax.html to tentando carregar o javascript via ajax, alguem pode dar um help, sou novato na area

Cara… primeira dica é… esqueça JS diretamente… use jquery… vc produz muito mais e boa parte da complexidade que se tem utilizando JS é abstraida…

mas quanto a dúvida, não entendi o que você quer… tente ser mais claro…

Abs… e boa sorte

Eu quero chamar os javascript que ta no arquivo textoJS.php, só que tem que ser chamado via ajax.
Tem que ser javascript, pq os arquivos q vou precisar chamar qndo for realmente fazer isso são js,
e fizeram um negocio usando framework de tal maneira que ingessaram a parada toda e só pode ser
chamado via ajax, se alguem puder dar um help, obrigado

Antes de qualquer coisa, edite teu tópico e coloque o código entre as tags [code]
Senão, não tem nem como ler essa coisa.

[quote=drsmachado]Antes de qualquer coisa, edite teu tópico e coloque o código entre as tags [code]
Senão, não tem nem como ler essa coisa.[/quote]

sou novo no site, mais os arquivos estão separados por =======
então axo que n tem problema, estar bem visivel…
mais obrigado pela dica

[quote=diegonogueira]
sou novo no site, mais os arquivos estão separados por =======
então axo que n tem problema, estar bem visivel…
mais obrigado pela dica[/quote]
Justamente por ser novo que deveria ter lido as regras do fórum.
Depois, veja a diferença

public class ComTagCode{
 public static void main(String args[]){
   System.out.println("Com tag [code]");
 }
}

E sem

public class SemTagCode{
public static void main(String args[]){
System.out.println(“Sem tag [code]”);
}
}

[quote=drsmachado][quote=diegonogueira]
sou novo no site, mais os arquivos estão separados por =======
então axo que n tem problema, estar bem visivel…
mais obrigado pela dica[/quote]
Justamente por ser novo que deveria ter lido as regras do fórum.
Depois, veja a diferença

public class ComTagCode{
 public static void main(String args[]){
   System.out.println("Com tag [code]");
 }
}

E sem

public class SemTagCode{
public static void main(String args[]){
System.out.println(“Sem tag [code]”);
}
}[/quote]

Pronto amigo, poderia me dar um help no codigo?
obrigado

Veja bem, você tem a função ajax que espera 2 (Dois) argumentos, url que, ao meu entender, representa a URL a a ser requisitada e params que pode ser nulo ou qualquer outro conjunto aceito de parâmetros.

 function ajax(url,params) {// Função que envia a url e seus parametros para o servidor de transferencia (AJAX)  
 (...)
 <button class='menuItem' onClick='ajax("soTexto.php")'>Só texto</button>  
 <button class='menuItem' onClick='ajax("textoJS.php")'>texto com java script</button>  

Porém, como pode ver, só passa 1 parâmetro na chamada.

Se não vai mandar parâmetros, faça


 <button class='menuItem' onClick='ajax("soTexto.php", "")'>Só texto</button>  

Se for passar parâmetros, coloque


 <button class='menuItem' onClick='ajax("soTexto.php", "parametroAqui")'>Só texto</button>  

[quote=drsmachado]Veja bem, você tem a função ajax que espera 2 (Dois) argumentos, url que, ao meu entender, representa a URL a a ser requisitada e params que pode ser nulo ou qualquer outro conjunto aceito de parâmetros.

 function ajax(url,params) {// Função que envia a url e seus parametros para o servidor de transferencia (AJAX)  
 (...)
 <button class='menuItem' onClick='ajax("soTexto.php")'>Só texto</button>  
 <button class='menuItem' onClick='ajax("textoJS.php")'>texto com java script</button>  

Porém, como pode ver, só passa 1 parâmetro na chamada.

Se não vai mandar parâmetros, faça


 <button class='menuItem' onClick='ajax("soTexto.php", "")'>Só texto</button>  

Se for passar parâmetros, coloque

[code]

Só texto
[/code][/quote]

tentei só q sem mandar parametro como vc colocou e tmb n executou o js

É meio óbvio.
O ajax vai tentar processar este trecho, ocasionando erro, logo, não irá finalizar a execução

} else {  
                request.send(params);  
            } 

[quote=drsmachado]É meio óbvio.
O ajax vai tentar processar este trecho, ocasionando erro, logo, não irá finalizar a execução

} else { request.send(params); } [/quote]

então fala oq faço pra resolver

Primeiramente, não respondo dúvidas por MP, nem MSN. Quando acho necessário uma abordagem mais específica, eu mesmo solicito.
Segundo, a lógica do javascript é a mesma do java. Se você tem a possibilidade de que determinado método que recebe mais de um parâmetro trabalhar apenas com um, então precisa validar se os demais são nulos.

Ou seja

SE params == nulo OU params == ''
  ENTAO envia url
SENAO
 envia params
FIM SE

Terceiro, um dos camaradas que respondeu antes foi enfático ao dizer para ignorar javascript. Discordo dele. Trabalhar com jQuery (assim como qualquer framework) fica mais produtivo quando você sabe o que ele faz “por trás dos panos”.

[quote=drsmachado]Primeiramente, não respondo dúvidas por MP, nem MSN. Quando acho necessário uma abordagem mais específica, eu mesmo solicito.
Segundo, a lógica do javascript é a mesma do java. Se você tem a possibilidade de que determinado método que recebe mais de um parâmetro trabalhar apenas com um, então precisa validar se os demais são nulos.

Ou seja

SE params == nulo OU params == ''
  ENTAO envia url
SENAO
 envia params
FIM SE

Terceiro, um dos camaradas que respondeu antes foi enfático ao dizer para ignorar javascript. Discordo dele. Trabalhar com jQuery (assim como qualquer framework) fica mais produtivo quando você sabe o que ele faz “por trás dos panos”.[/quote]

valeu pela “ajuda”, mais pode deixar, vou ver se alguem pode me explicar, como eu disse sou INICIANTE, e vc na minha humilde opinião é mal educado…
mais não leva pro lado pessoal não… vou esperar alguém com um pouco de paciência para comentar.
obrigado

Ajuda = Esclarecer, fornecer informações ou ferramentas que tornem possíveis a execução de algo.

Falar o que tem que fazer = fazer = Tomar a iniciativa de, tomar frente e desenvolver as ações que irão gerar um resultado.

Logo

Ajudar != Fazer.

E sim, sou mal educado com quem quer as coisas prontas. Quem não estuda, quem tem preguiça e má vontade, quem quer tudo na mão e nem se preocupa em procurar informações, fica esperando que os outros façam por eles.
Se você acha que tudo cairá do céu, te digo, mais fácil largar o desenvolvimento e ir brincar de qualquer outra coisa.

1 - Você entrou num fórum e não leu as regras;
2 - Você está querendo que alguém faça o teu serviço e não irá pagar por isso;
3 - Você me mandou uma MP pedindo meu MSN para conversarmos;
4 - Você nem sequer pesquisou o funcionamento do ajax para entender o que está dando errado;

[quote=drsmachado]Ajuda = Esclarecer, fornecer informações ou ferramentas que tornem possíveis a execução de algo.

Falar o que tem que fazer = fazer = Tomar a iniciativa de, tomar frente e desenvolver as ações que irão gerar um resultado.

Logo

Ajudar != Fazer.

E sim, sou mal educado com quem quer as coisas prontas. Quem não estuda, quem tem preguiça e má vontade, quem quer tudo na mão e nem se preocupa em procurar informações, fica esperando que os outros façam por eles.
Se você acha que tudo cairá do céu, te digo, mais fácil largar o desenvolvimento e ir brincar de qualquer outra coisa.

1 - Você entrou num fórum e não leu as regras;
2 - Você está querendo que alguém faça o teu serviço e não irá pagar por isso;
3 - Você me mandou uma MP pedindo meu MSN para conversarmos;
4 - Você nem sequer pesquisou o funcionamento do ajax para entender o que está dando errado;[/quote]

Tem gente nesse mundo infelizmente que se acha demais. Perguntei no forum se alguem sabia o que fazer, vc falou várias coisas, q testei e n deu certo…
Vc não é lá essas coisas tmb n…
Não quero q ninguem faça meu trabalho, n sei nem pq to discutindo com vc, acho que vc nem vale a pena, deve ser um mané q n tem amigos e quem dirá mulheres rsrsrrs
Vc vem dizer q n pesquisei funcionamente do ajax, disse mais de uma vez q sou iniciante, sabe ler n?
ver se para de deixar msg, sua ajuda eu dispenso, vc n consegue tmb rsrsrsr
e um pouco de humildade n faz mal a ninguem

Provavelmente eu seja um mané, com mais de 3500 respostas no guj.
O que tem a ver ser iniciante e não ter pesquisado? Se é iniciante, primeiro pesquise, diga onde e o que não entendeu, aliás, esta é uma das regras do fórum.
Eu sei o que fazer, você não. E, mesmo que não soubesse, humildemente iria perguntar de que maneira eu poderia alterar a função ajax para que ela pudesse ser executada sem o fornecimento de parâmetros e não seria boçal pedindo para me dizerem o que fazer.

Aliás, você deve ser destes babaquinhas metidos a webdesigners, que só usam o “miguxês” para escrever e não conseguem criar uma frase com mais de 10 palavras sem usar uma abreviação como “q”, “vc” e afins.

Eu respondo aqui, não para pessoas que precisam justificar a capacidade mental com argumentos do tipo “não tem amigos, quem dirá mulheres”.

Se você não entende o que digo, me desculpe, eu costumo escrever em português, para pessoas que sabem ler.

Além do mais, não preciso provar nada para alguém que sequer se preocupa em pesquisar as coisas.

Como esta comunidade é visitada por milhares de pessoas e provavelmente, alguém que realmente necessite disto.

 if (typeof params == "undefined") {  
                request.send();  
            } else {  
                request.send(params);  
            } 

Veja que se params são diferentes de undefined, ele processa o request utilizando params.
Neste caso, há duas opções, remover o else, o que, não ajuda, pois pode ocorrer situações em que ele seja necessário. Ou então, validar, verificar se params é igual a ‘’ e, em caso positivo, processar apenas a url.

 if (typeof params == "undefined") {  
                request.send();  
            } else {  
                if(params != ''){//verifica se é diferente de vazio
                   request.send(params);  
               }else{
                     request.send();
              }
            } 

Claro, a validação deve considerar o tipo de dado passado como variável params, que pode ser diferente deste que está no exemplo citado. Talvez seja até mais vantajoso validar se é vazio e executar o request.send() do que validar se não é, enfim, isso é parte das regras de negócio e isso eu não posso dizer.

Enfim, aos realmente interessados, é isto.
Caso surjam dificuldades, por gentileza, informem.

Primeiro chega de discussão, tô afim de aprender algo e n discutir via interntet, e sim abrevio palavras, escrevo como bem entendo!
já tentei usar várias coisas e ainda n consegui fazer funcionar o js…
tentei usar o eval, mais n tive sucesso…
tentei adaptar o codigo do drsmachado, e tmb n tive sucesso…
alguma sugestão?
vi que é meio “errado” chamar js via ajax, mais infelizmente tenho que fazer isso aqui…
sugestões serão bem vinda

O que acontece? Como ficou depois das alterações?

continuou do mesmo jeito…
eu axo q o params tá vindo em branco…
ele n deveria ter algo ?

[quote=diegonogueira]continuou do mesmo jeito…
eu axo q o params tá vindo em branco…
ele n deveria ter algo ?[/quote]
Posta o código do ajax e um dos locais onde você o chama (não esqueça da tag[code])