Ir para conteúdo

POWERED BY:

Arquivado

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

MIdNight

Ajax

Recommended Posts

Oi povinho :)

Bom, eu criei um site pessoal para por algumas coisas.

Criei este code de JS:

function	frame_update()	{
	var quant = document.getElementById("type");
	switch(quant)
	{
		case "1":
			ajax_open('diffs.php','apDIv');
			break;
			
		case "2":
			ajax_open('npcs.php','apDiv');
			break;
	}
	return(0);
}
Ele é executado em um button:

<input type="button" onclick="frame_update();" value="Visualizar">
O que ele deve fazer é executar o case correto para as opções, o elemento de id 'type' é o seguinte select:

	<select id = "type">
		<option value = "1">Mods (Diff's)</option>
		<option value = "2">NPC's</option>
	</select>
Porém essa função frame_update não é executada, tentei por um alert após a declaração/inicialização da variável, porém este alert nem se quer foi exibido.

Alguém pode me ajudar? '-'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente não usar nomes que possam ser palavras reservadas da linguagem.

<select name="tipo" id="tipo">
                <option value="1">Mods (Diff's)</option>
                <option value="2">NPC's</option>
        </select>
function frame_update(){
        var quant = document.getElementById('tipo');
        alert( quant.value );
        switch( quant.value )
você declarou corretamente o <script> ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função está num arquivo .js externo que possu a função ajax_open mas esta funciona corretamente :)

@Edit

E quanto à palavra reservada acho que não há problema de usar uma reservada neste caso porque apenas a uso como string '-'

@Edit²

Opa, era só o .value que eu tinha esquecido *acho*

vo fazer mais uns testes pra confirmar.

@Edit³

Era só isso mesmo, obrigadação, se quiser pode dar closed no topico :)

Obs: Assim como falei a palavra reservada não influenciou em nada já que só usei-a como string.

 

Bom, eu utilizo o seguinte código para se trocar de menus no site:

// Código desenvolvido por Rafael Perrella <http://cronus-emulator.com/forum/?showuser=6>

// AJAX
try		{ xmlhttp = new XMLHttpRequest(); }
catch(ee) { try	{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e)  { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
catch(E)	{ xmlhttp = false; }}}

function	ajax_open (file, div)	{
	xmlhttp.open ('GET', file);
	xmlhttp.onreadystatechange = function () {
		document.getElementById(div).innerHTML = "<table align=\"center\"><tr><td><img src=\"loading.gif\"></td><td>Carregando, aguarde ...</td></tr></table>";
		if (xmlhttp.readyState == 4)
			document.getElementById(div).innerHTML = xmlhttp.responseText;
	}
	xmlhttp.send (null);
}

// "Atalhos"
function	http (url, frame) { if (frame == "") location.href = url; else document.getElementById(frame).src = url; }

function	open_link (url, div, frame) {
	objDiv = document.getElementById(div);
	objFrame = document.getElementById(frame);
	if (url.substr (0, 5) == "http:") {
		objDiv.style.display = "none";
		objDiv.innerHTML = "";
		objFrame.style.display = "";
		http (url, frame);
		//setTimeout ("http ('"+ url +"', '"+ frame +"')", 10);
	} else {
		objFrame.style.display = "none";
		objFrame.src = "about:blank";
		objDiv.style.display = "";
		ajax_open (url, div);
	}
}

function	link (url) {
	open_link (url, "contentdiv", "contentframe");
}
É um arquivo ajax.js

 

Esta frame_update eu uso na pagina works.php:

<script type="text/javascript">
function	frame_update()	{ // By MidNight
	var quant = document.getElementById("type");
	switch(quant.value)
	{
		case "1":
			ajax_open('diffs.php','apDIv');
			break;
			
		case "2":
			ajax_open('npcs.php','apDiv');
			break;
		
		default:
			alert("Opção incorreta selecionada!)";
			break;
	}
	return;
}</script>
<center>
	<p><font size="5" color="gray">TRABALHOS</font></p>
	<p>Selecione o tipo de trabalho que queres visualizar.</p>
	<select id = "type">
		<option value = "1">Mods (Diff's)</option>
		<option value = "2">NPC's</option>
	</select>
	<br /> <br />
	<input type="button" onclick="frame_update();" value="Visualizar">
</center>
Porém quando clico no botão não ocorre nada.

 

Bom, já que não tou vendo o botão edit para editar, eu hospedei os arquivos para caso alguem queira ver o funcionamente online:

http://midnight.eaplugin.org/

 

É na pagina Trabalhos

Compartilhar este post


Link para o post
Compartilhar em outros sites

O FireFox me mostrou o seguinte erro:

frame_update() is not defined

 

Vá em:

Ferramentas > Console de Erros (Ctrl+Shif+J)

 

e realmente ao abrir o código fonte, a função não está lá.

Coloque ela no arquivo:

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

Vendo o HTML carregado por AJAX, através do FireBug, vejo que você colocou a tag script na página que trouxe.

Este é o erro. Scripts carregados por AJAX não funcionam mesmo. É um grande problema/dilema..

 

Faça a alteração que sugeri.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já tentei por a função no ajax.js e também não funciona.

 

Bacana o console, nao sabia que tinha XD

 

Pronto, pus a função no ajax.js novamente.

 

Pront, pus no ajax.js e novamente tá dizendo que não foi definido.

 

Ninguém sabe concertar? =/

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.