Xmlhttprequest
#16
Posted 31/05/2005, 16:38
Defina a variável como global, como isso?
No inicio do <script lang...> adicione:
[quote]var campo_select = document.forms[0].subcategoria;[/quote]
E dependendo da sua preferência, altere o valor dessa variável.
[quote]<a href="java script:campo_select = 'document.forms[5].outro_campo';">Resultado em outro campo?!</a>[quote]
#17
Posted 10/06/2005, 14:29
Balala.. você pode explicar melhor como fazer este select pra consertar este erro da acentuação?É, tem que fazer uns esquema utilizando COLLATION e CHARSET no select. O MySQL novo está vindo com esses upgrades...
O que pode fazer é gravar a codificação html na tabela.
Aqui ele pega por exemplo elétrica (ao levar no combo, fica, el?ica) e ênfase (e?fase).
Não consegui descobrir como faço pra alterar este problema de acentuação.
#18
Posted 10/06/2005, 14:34
Tenho 2 combos (um q carrega o tipo do curso, por exemplo) e o outro q carrega o curso (conforme foi selecionado o tipo do curso anteriormente). Porém, para tipo do curso, a acentuação funciona normalmente. O problema acontece ao carregar o segundo combo, onde ele troca uma ou mais letras acentuadas por ? ..
Este erro só não acontece no Netscape 7.02 (pt-br), já no IE, Mozilla, Netscape 7.2 (eng) dá errado.
Agradeço muitíssimo se alguém puder me ajudar a corrigir este problema.
#19
Posted 25/06/2005, 12:17
Pois estou tentando usar e não funciona...
Eu criei o bd alterei as linas de conxão com o bd:
<?php
$con = mysql_connect("localhost", "root", "");
mysql_select_db("canelas");
?>
E copiei o código:
Formulario.php
<?php
$con = mysql_connect("localhost", "root", "");
mysql_select_db("canelas");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
function pesquisar_dados( valor )
{
http.open("GET", "consultar.php?id=" + valor, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}
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.split( "|" );
campo_select.options[i] = new Option( string[0], string[1] );
}
}
}
function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch {
xmlhttp = false;
}
}
return xmlhttp;
}
var http = getHTTPObject();
</script>
</head>
<body>
<form name="formulario" method="post" action="">
<p><select name="categoria" onchange="pesquisar_dados( this.value )">
<option></option>
<?php
$consulta = mysql_query("SELECT * FROM categorias ORDER BY nome ASC");
while( $row = mysql_fetch_assoc($consulta) )
{
echo "<option value=\"{$row['codigo']}\">{$row['nome']}</option>\n";
}
?>
</select></p>
<p><select name="subcategoria"></select>
</p>
</form>
</body>
</html>
consultar.php
<?php
$con = mysql_connect("localhost", "root", "");
mysql_select_db("canelas");
$categoria = addslashes($_GET["id"]); // pegamos o id passado pelo select
$consulta = mysql_query("SELECT * FROM subcategoria WHERE categoria = '$categoria'"); // selecionamos todas as subcategorias que pertencem à categoria selecionada
while( $row = mysql_fetch_assoc($consulta) )
{
echo $row["nome"] . "|" . $row["codigo"] . ","; // apresentamos cada subcategoria dessa forma "NOME|CODIGO,NOME|CODIGO,NOME|CODIGO,...", exatamente da maneira que iremos tratar no JavaScript
}
?>
As categorias aparecem, mas quando seleciono uma categoria para aparecer as subcategorias, dá uma erro de Javascript no IE (linha 20 caractere 7, o objeto não dá suporte para a propriedade ou metodo).... também testei no Firefox e nada...
agradeço a ajuda...
Jura
Edição feita por: jura, 25/06/2005, 12:21.
#20
Posted 25/06/2005, 18:54
Testei via Intranet e não funcionou. Pensei que meu AppServ estava com recursos limitados e mandei para um server.
E nada.
Há muito tempo atrás eu queria criar um sistema de FAQ e o amigo Klaus tentou me ajudar. mas na época eu era muito cru em programação e não consegui fazer.
Esse sistema parece muito bom e muito funcional, mas deu esse mesmos erros.
Aguardo resposta.
Abraços
#21
Posted 02/07/2005, 12:05
Jura
#22 mascker
Posted 08/07/2005, 12:45
Se utilizarmos um documento de texto e colocarmos java script nesse documento não funciona. Tentei com window.alert() e não dava nada.
Se for php ou html funciona.
Alguém sabe como resolver
Saudações
#24
Posted 11/07/2005, 15:46
O erro já foi corrigido?Havia um erro no código porque estava substituindo o [ i ] pelo bbCode =/, odeio isso...
Estou colocando em CODE para ver se resolve, e o anexo deve estar ok
Pq ñ fungou comigo ñ , como opções do segundo select apareceu todo o código html em uma linha separado por | ... É só meu pc q tem fantasmas ou iss aconteceu com + alguém?
#25
Posted 12/07/2005, 17:39
Partindo desse exemplo como que eu faria para adicionar mais um campo.
Minha idéia é montar um sistema de Dicionário (claro, não vai ser um Houaiss da vida).
Um sistema de dicionário de informática.
Nele a pessoa sleciona o no primeiro SELECT a categoria (já vai estar pronta), aí escolheu, o segundo SELECT já muda com as subcategorias desejadas (sem problema também), mas daí, pra completar eu ia precisar de um último SELECT com as letras do alfabeto (A-Z e 0~9)
E ao invés de após selecionar os três ele fornecer o resultado imediatamente. Passar por um botão SUBMIT (pra pessoa no caso da pessoa errar ela não ficar recebendo muitas "atualizações" na tela com os diversos conteúdos.
Será que deu pra entender, ou eu enrolei muito?
Abraços
#26
Posted 21/07/2005, 02:45
no tutorial do Balala ele que era essa a estrutura para mandar o resultado pra um campo texto:
function handleHttpResponse() { campo_text = document.forms[0].subcategoria; if (http.readyState == 4) { campo_text = http.responseText; } }
e eu preciso mandar o valor para um campo text, eu criei o input assim
<input type="text" name=valor>
e o handleHttpResponse assim
function handleHttpResponse() { campo_text = document.getElementById(auxvalor); if (http.readyState == 4) { campo_text = http.responseText; string = results[0].split( "|" ); campo_text = string[0]; } }
Na realidade eu mando para o handleHttpResponse apenas um valor, que seria o valor em R$ do meu produto selecionado, e eu preciso que ele seja mandado para um input do tipo texto, mas eu não estou conseguindo, gostaria que se tiver alguém que já tiver feito isso me desse uma ajuda se tiver jeito.
Obrigado
Anggelus
Edição feita por: anggelus, 22/07/2005, 11:02.
#27
Posted 25/07/2005, 10:22
To com um problemaço nessa parte dos ACENTOS!
E to vendo que no BD está gravando certinho. O problema eh na hora da exibicao mesmo.
Alguma ideia?
abracos.
Apos algumas pesquisas, obti isso, mas, tambem, NAO funcionou.
req.setRequestHeader('Accept-Language','pt-br');
req.setRequestHeader('Accept-Charset','ISO-8859-1');
req.setRequestHeader('Content-Type','text/html; charset=iso-8859-1');
Abracos.
resolvi mandando um header com content type html e charset iso8859-1.
#28
Posted 18/08/2005, 01:23
Tem como quando for exibir as subcategorias poder ter uma option fixa por exemplo "Todas as subcategorias" ???
Hoje ele tá assim:
[quote]<select name="subcategoria"></select>[/quote]
Só que aí ele gera a 1ª option já com o nome da subcategoria e eu queria que a fosse assim:
[QUOTE] ]<select name="subcategoria">
<option value=''>Todas</option>
<option value='1'>Subcategoria1</option>
<option value='2'>Subcategoria2</option>
</select>
Se alguém souber agradeço,
Jura
#29
Posted 09/09/2005, 13:35
No ínicio do combo de resultado ele está retornando: [[[, no ínicio quando a pg em PHP não localiza dados e a msm coisa no final das opções, quando localiza.
Executando apenas o arquivo PHP, para verificar se tal caracter foi inserido por engano, constato q está td ok, este ñ existe!!
Vlwww de qualquer modo!!
Abraço!
Edição feita por: michelsp, 09/09/2005, 14:09.
#30
Posted 13/10/2005, 10:57
No FF e Opera funciona perfeitamente.
Segue o código abaixo:
function Validar() { nome = document.formulario.nome; email = document.formulario.email; assunto = document.formulario.assunto; mensagem = document.formulario.mensagem; if (nome.value == "") { alert("O nome é um campo obrigatório!"); nome.focus(); return; } if (email.value=="") { alert("O e-mail é um campo obrigatório!"); email.focus(); return; } else { if (!Validar_Email(email.value)) { alert("E-mail inválido!"); email.select(); return; } } if (assunto.value=="") { alert("O assunto é um campo obrigatório!"); assunto.focus(); return; } if (mensagem.value=="") { alert("A mensagem é obrigatória!"); mensagem.focus(); return; } http.open("GET", "fale_conosco_send.php?nome=" + nome.value + "&email=" + email.value + "&assunto=" + assunto.value + "&mensagem=" + mensagem.value, true); http.onreadystatechange = handleHttpResponse; http.send(null); return; } function handleHttpResponse() { msg = document.getElementById("msg"); msg.innerHTML = http.responseText; } function getHTTPObject() { var req; try { if (window.XMLHttpRequest) { req = new XMLHttpRequest(); if (req.readyState == null) { req.readyState = 1; req.addEventListener("load", function () { req.readyState = 4; if (typeof req.onReadyStateChange == "function") req.onReadyStateChange(); }, false); } return req; } if (window.ActiveXObject) { var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"]; for (var i = 0; i < prefixes.length; i++) { try { req = new ActiveXObject(prefixes[i] + ".XmlHttp"); return req; } catch (ex) {}; } } } catch (ex) {} alert("XmlHttp Objects not supported by client browser"); } var http = getHTTPObject();
2 user(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)