Jump to content


Photo

Mais Um Atrás De Um Menu Atualizavel..


  • Faça o login para participar
21 replies to this topic

#16 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 12/02/2007, 13:13

Aiii, responseText ??? Essa doeu até na alma ....

Você precisa de um retorno um pouco mais complexo, use e abuse da funcionalidade do ajaX ... XML rapaz ....

<sub>
  <valor>1</valor>
  <nome>1</nome>
</sub>
<sub>
  <valor>2</valor>
  <nome>2</nome>
</sub>

Ou em outras phpalavras:

<?php while( $row = mysql_fetch_assoc($consulta) ){ ?>
  <sub>
	<valor><?php print $row['id']; ?></valor>
	<nome><?php print $row['nome']; ?></nome>
  </sub>
<?php } ?>

Só atente que agora o retorno é um xml, então você tem que enviar o header adequado senão não adianta de nada, vem tudo como texto .... :huh:
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#17 Nando

Nando

    Eta eta eta, brasileiro quer.. futibol, mulher e rock'n roll

  • Usuários
  • 916 posts
  • Sexo:Masculino
  • Localidade:Sapucaia do Sul - RS
  • Interesses:Não sou interesseiro.

Posted 12/02/2007, 13:56

<?php
header("Content-type: text/html; charset=iso-8859-1");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

include "admin/db.inc";
db_connect() or print(mysql_error());

$categoria = addslashes($_GET["id"]); 
$consulta = mysql_query("SELECT * FROM scategoria WHERE pertence = '$categoria' ORDER BY nome ASC");
while( $row = mysql_fetch_assoc($consulta) ){ ?>
  <sub>
	<valor><?php print $row['id']; ?></valor>
	<nome><?php print $row['nome']; ?></nome>
  </sub>
<?
}
?>
Isso?!

Editndo:
Oxi eu falei q não sabia ajax hehehehe

Olha só eu fiz esse código só que ele não deu muito certo hehehe retorna um tudo dentro dessas tags e não manda direitim pro select... =/
www.m3veiculos.net/busca.php

Edição feita por: Nando, 12/02/2007, 14:05.

Qualquer dia será só 1 linha de assinatura! x) Aí vou deixar essa aki mesmo já pra garantir.
Fireworks: llllllllllllllllllllllllllllll (Jah mexo a tempo mas ando meio parado)
Dreamweaver: llllllllllllllllllllllllllllll (Braço direito enquanto programo)
Js: llllllllllllllllllllllllllllll (Recem iniciando)
PHP: llllllllllllllllllllllllllllll (Dinamic Punch!!)

#18 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 12/02/2007, 14:17

Cabeçalho:
header("Content-Type: text/xml");

Criando o xml:
echo "<?xml version="1.0" ?>";
include "admin/db.inc";
db_connect() or print(mysql_error());
$categoria = addslashes($_GET["id"]);
 $consulta = mysql_query("SELECT * FROM scategoria WHERE pertence = '$categoria' ORDER BY nome ASC");

while( $row = mysql_fetch_assoc($consulta) ){ ?>
  <sub>
	<valor><?php print $row['id']; ?></valor>
	<nome><?php print $row['nome']; ?></nome>
  </sub>
<?
}
?>

Acho que é o suficiente pra gerar o arquivo, depois você manipula esse retorno com DOM:

var xml = receiveReq.responseXML;
var opcoes = xml.getElementsByTagName("sub");
for (i = 0; i < opcoes.length; i++) {
var valor = opcoes[i].getElementsByTagName("valor");
}

É por aí ... :boxing:
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#19 Nando

Nando

    Eta eta eta, brasileiro quer.. futibol, mulher e rock'n roll

  • Usuários
  • 916 posts
  • Sexo:Masculino
  • Localidade:Sapucaia do Sul - RS
  • Interesses:Não sou interesseiro.

Posted 12/02/2007, 14:30

Opa obrigado pela atenção e resposta quase automática hehehe briigadão mesmo pelo apoio...

Eu deixarei os outros cabeçalhos tbm pra tratar os acentos no resultado ok?

Então presumo que o arquivo ficará assim?
<?
header("Content-type: text/html; charset=iso-8859-1");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
echo "<?xml version="1.0" ?>";

include "admin/db.inc";
db_connect() or print(mysql_error());
$categoria = addslashes($_GET["id"]);
$consulta = mysql_query("SELECT * FROM scategoria WHERE pertence = '$categoria' ORDER BY nome ASC");

while( $row = mysql_fetch_assoc($consulta) ){ ?>
  <sub>
	<valor><?php print $row['id']; ?></valor>
	<nome><?php print $row['nome']; ?></nome>
  </sub>
<?
}
?>
????

Onde colocarei o código dom?

Dentro de qual função ou substituindo qual trecho do código?? (desculpa ser tão simples e não saber sabe... é q eu realmente estou inciando, antes só sabia feijão-com-arroz no banco de daos.. to na luta né? =)~ )

Brigadão pelo apio de todos! :D
Qualquer dia será só 1 linha de assinatura! x) Aí vou deixar essa aki mesmo já pra garantir.
Fireworks: llllllllllllllllllllllllllllll (Jah mexo a tempo mas ando meio parado)
Dreamweaver: llllllllllllllllllllllllllllll (Braço direito enquanto programo)
Js: llllllllllllllllllllllllllllll (Recem iniciando)
PHP: llllllllllllllllllllllllllllll (Dinamic Punch!!)

#20 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 12/02/2007, 15:54

É nessa função JS aqui:

function handleHttpResponse(){
  campo_select = document.forms[0].subcategoria;
  if (http.readyState == 4) {
	campo_select.options.length = 0;
	results = http.responseText.split(",");
	for( i = 0; i < results.length; i++ )
	{
	  string = results[i].split( "|" );
	  campo_select.options[i] = new Option( string[0], string[1] );
	}
  }
}

Com base naquele modelo que eu passei acima(está incompleto), tenta montar novamente esta função. Eu to meio apurado aqui, qq coisa eu posto depois.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#21 Nando

Nando

    Eta eta eta, brasileiro quer.. futibol, mulher e rock'n roll

  • Usuários
  • 916 posts
  • Sexo:Masculino
  • Localidade:Sapucaia do Sul - RS
  • Interesses:Não sou interesseiro.

Posted 12/02/2007, 16:43

Bem já entendi onde é mas não sei montá-la não sabe...
function handleHttpResponse(){
	var xml = receiveReq.responseXML;
	var opcoes = xml.getElementsByTagName("sub");
	for (i = 0; i < opcoes.length; i++) {
		var valor = opcoes[i].getElementsByTagName("valor");
	}

	campo_select = document.forms[0].subcategoria;
	if (http.readyState == 4) {
		campo_select.options.length = 0;
		results = http.responseText.split(",");
		for( i = 0; i < results.length; i++ ){
			string = results[i].split( "|" );
			campo_select.options[i] = new Option( string[0], string[1] );
		}
	}
}

Pelo que entendi isso não funcionará, bem tentei x(
Qualquer dia será só 1 linha de assinatura! x) Aí vou deixar essa aki mesmo já pra garantir.
Fireworks: llllllllllllllllllllllllllllll (Jah mexo a tempo mas ando meio parado)
Dreamweaver: llllllllllllllllllllllllllllll (Braço direito enquanto programo)
Js: llllllllllllllllllllllllllllll (Recem iniciando)
PHP: llllllllllllllllllllllllllllll (Dinamic Punch!!)

#22 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 13/02/2007, 13:06

Não era só pra copiar o que eu postei dentro da função, eu falaei que estava incompleta... :D

function handleHttpResponse(){
	if(http.readyState == 4){
		var campo_select = document.forms[0].subcategoria;
			campo_select.options.length = 0;
		
		var xml = receiveReq.responseXML;
		var opcoes = xml.getElementsByTagName("sub");
		for (i = 0; i < opcoes.length; i++) {
			var valor = opcoes[i].getElementsByTagName("valor");
			var nome = opcoes[i].getElementsByTagName("nome");
			campo_select.options[i] = new Option( nome, valor );
		}
	}
}

Montei aqui no editor do fórum mesmo, testa ae, se der erro ve se é nome de algum elemento, e volte a postar se der erro mas você souber o motivo, to meio sem tempo pra ficar caçando ... :unsure:
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq