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); } function handleHttpResponse() { if (http.readyState == 4) { document.getElementById("msg").innerHTML = http.responseText; } } function getHTTPObject() { var xmlhttp; /*@cc_on @if (@_jscript_version >= 5) try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } @else xmlhttp = false; @end @*/ if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { try { xmlhttp = new XMLHttpRequest(); } catch (e) { xmlhttp = false; } } return xmlhttp; } var http = getHTTPObject();
Xmlhttprequest
#31
Posted 13/10/2005, 13:08
#32
Posted 09/11/2005, 19:59
Só um detalhe é que se você altere no banco de dados algun registro, muda o nome, ou insere mais um, ou mesmo exclui, os itens não se altera, é preciso fechar o Navegador e abrir a pagina novamente.
Queria saber se é possivel mudar alguma coisa ou tem que ser assim.
valeu galera... com esse codigo da pra ir longe... fazer umas pagina animal..
#33
Posted 24/11/2005, 14:07
Na tentiva de deixar a função flexivel, ou "genérica", tentei fazer o q sugeriu mas não deu certo.Que desculpa o que... Precisamos é deixar viva as dúvidas ;)
Defina a variável como global, como isso?
No inicio do <script lang...> adicione:var campo_select = document.forms[0].subcategoria;
E dependendo da sua preferência, altere o valor dessa variável.<a href="java script:campo_select = 'document.forms[5].outro_campo';">Resultado em outro campo?!</a>
Qdo tento instanciar a variável global, como um objeto, dá erro. (Linha do codigo http.open). Aí mudei e coloquei o 'alvo' como sendo um parametro. Até aí tudo bem, o problema, é que ao atribuir o nome do objeto à variável string, dá outro erro ( Linha do código: campo_select.options[] - dentro do if ).
Pf, me ajudem...
Obrigado
var campo_select
//campo_select = document.forms[0].campo_select;
function pesquisar_dados(obj, alvo){
valor = obj.value;
campo_select = alvo;
http.open("GET", "Zonas_UF.asp?uf=" + valor, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}
function handleHttpResponse() {
campo_select = document.forms[0].campo_select;
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] );
}
}
}
Analista Desenvolvedor
msn: lc_rcosta@yahoo.com.br
#34
Posted 02/12/2005, 10:03
Balala, sem palavras cara, ótimo tutorial, só tenho algumas duvidas...
Eu tentei executar o codigo de consulta na mesma pagina, funciona legal mas ele imprime um monte de coisa no select junto, porque isso?
Não tem como adaptar para que eu use somente uma pagina?
#35
Posted 05/12/2005, 22:36
campo_select.option é nulo ou não é um objeto
porque acontece isso?
#36
Posted 06/12/2005, 08:54
Não seria campo_select.options ? Procure a linha do erro..
#37
Posted 06/12/2005, 12:39
a unica coisa que nao intendi pq ao correrar os dados no segundo combo, sempre vem um registro em branco por ultimo....
#38
Posted 09/12/2005, 13:58
Show de bola o tutorial! Muito bom mesmo!
Só tenho um problema aqui, tanto no Firefox quanto no Opera, quando tento abrir uma URL externa, o browser não permite. No Opera dá "Security Violation" e no FF "Access denied". No IE funciona na boa, abri URLs externas e funcionou na boa. Alguém sabe dizer se tem alguma forma dos outros navegadores liberarem o acesso a outros sites através do XMLHTTPRequest? Ou tenho que me conformar com isso? Hehe!
Aproveitando o Fórum de JS aqui e pra não abrir outro tópico, gostaria de saber como faço pra acessar os elementos de um form. Assim, preciso criar uma URL do tipo, arquivo.do?var12=valor&var2=valor2, mas sem dar um submit no formulário. Pra isso vou criar uma String com os nomes e valores dos campos hidden do form, separá-los por '&' e carregar usando AJAX. Mas não consigo acessar os hiddens, muito menos seus nomes e valores. Tentei usar:
// Carrega o formulario var myForm = document.nomeForm; // Carrega o numero de elementos var numOfElements = myForm.elements.length; // Zera o tamanho da lista de elementos var listSize = 0; // Cria os vetores com nomes e valores var namesList = new Array(); var valuesList = new Array(); // Carrega todos os nomes e valores nos vetores while(listSize < numOfElements) { namesList[listSize] = myForm.elements[listSize].name valuesList[listSize] = myForm.elements[listSize].value } // Instancia o contador e a string com a URL var counter; var urlToOpen = 'destino.do?'; // Carrega na string os nomes e valores dos atributos for (counter = 0;counter <= listSize;counter++) { urlToOpen += namesList[counter] + '=' + valuesList[counter]; if (counter < listSize) { urlToOpen += '&'; } // Código AJAX para carregar a urlToOpen (...)
Alguém sabe o que está errado?
Obrigado.
Edição feita por: gutostraube, 09/12/2005, 14:00.
Analista de Sistemas
#39
Posted 09/12/2005, 16:05
outra curiosidade¹: o google Maps e o GMail sao apenas 2 exemplos do que o google consegue fazer usando o Ajax...
outra curiosidade²: google nao usa asp. google nao usa php. google usa python!
#40
Posted 06/01/2006, 14:03
Comecei a usar Ajax e (putz!) ficou tudo muitoooo mais rápido!
E descobri que tudo poderia ficar mais fácil usando a prototype, uma biblioteca que facilita, e muito, a vida de quem tá desenvolvendo.
Encontrei até um help para versão 1.3.1, mas baixei a versão 1.5.1 e não encontrei nenhuma referência para usar as funções, com exceção dessa "mãozinha". Queria saber se alguém sabe de algum manual, tutorial, qualquer coisa que explique as funções da 1.5.1.
Valeu!!!
Analista de Sistemas
#41
Posted 06/01/2006, 15:45
Neste caso teria como eu jogar os valores para varios campos ao mesmo tempo:
Exemplo.
Tenho os dados do user:
Nome: João
Idade: 15
Cidade: São Paulo
Natural: Bahia
Ai ao selecionar o Nome: João no select ele preencha os campos Idade: 15 Cidade: São Paulo Natural: Bahia
Não sei se fui claro..
Please Help
Abraços
#42
Posted 09/01/2006, 13:35
ai fui "tentar" aplicar este script em um dos meus scripts porém ao selecionar o algo no segundo combo ele simplesmente VOLTA pra primeira opção e não seleciona as outras opções nem.... bom já entenderam né ?
então o que poderia estar de errado ?
segue abaixo o código:
function pesquisar_dados( valor ) {
http.open("GET", "../funcao/funcao.php?Visu=1&id=" + valor, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}
function handleHttpResponse() {
campo_select = document.forms[0].usuario;
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] );
}
}
}
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();
<select name='setor' size=1 class='Combo' onchange="pesquisar_dados( this.value )">
<option value='0' style='background-color: #425978;'>+ Setor +</option>
<?
$SQl = mysql_query("SELECT DISTINCT setor FROM usuarios WHERE setor >0");
while ($RRr = mysql_fetch_array($SQl)) {
$Sql = mysql_query("SELECT * FROM setor ORDER BY setor ASC");
while ($rRR = mysql_fetch_array($Sql)) {
if ($RRr['setor'] == $rRR['id']) {
echo "<option value='".$rRR['id']."'>".ucwords($rRR['setor'])."</option>";
}
}
}
?>
</select><br>
<select name='usuario' class='Combo' onchange="pesquisar_dados( this.value )">
<option style='background-color: #425978;'>+ Selecione um usuário +</option>
</select>
O Script teria que funcionar assim , ele iria exibir todos os departamentos, porém só aqueles que os usuários ( estivessem cadastrados ) e após selecionar a categoria exibir somente os USUARIOS que pertencem daquele DEPARTAMENTO$SQl = mysql_query("SELECT * FROM usuarios WHERE setor = '".addslashes($_GET["id"])."'");
while( $RRr = mysql_fetch_assoc($SQl) ) {
echo ucwords($RRr["nome"]) . "|" . $RRr["setor"] . ",";
}
até ai funciona BL, o problema e como disse eu não consigo selecionar outro USUARIO ele insiste em ficar somente no primeiro USUARIO
ah outro probleminha tem como deixar do jeito que esta o SELECT ? só que ao selecionar o primeiro item ( + SETOR + ) ele não exibi-se todos os usuarios no segundo combo ?
T+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Editando 1
Ah já consegui arrumar era erro grave meu
o erro está em negrito acima na parte de HTML + PHP
Vlw agora sim ta 10
pq tbm eu consegui arrumar o meu outro problema, foi so mexer no PHP
T+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Editando 2
e tipo como eu resgato com o $_POST o valor do segundo COMBO ?
e que eu estou colocando o $_POST['NOME DO COMBO'] e sempre me retorna o valor do PRIMEIRO COMBO
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Editando 3
já consegui resolver !!!
ta em VERMELHO o erro ^^' que não e um erro e sim una falha de aprestar atenção de minha parte
o correto era $RRr['id'] pq se não eu estava pegando sempre o ID do setor ai repetia hehehe
VLWWW
T+
Edição feita por: Goku Jr, 10/01/2006, 15:11.
PALMEIRAS - Primeiro campeão do mundo em 1951
#43
Posted 11/01/2006, 08:49
resolvi o problema do acento colocando:resolvi mandando um header com content type html e charset iso8859-1.
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");
#44
Posted 11/01/2006, 16:48
No meu caso, além da acentuação incorreta, a página, abaixo da combo, é toda desconfigurada!
Aparecem os valores da combo de subcategoria, por trás de textareas, depois, quando seleciono outra categoria, ele apaga os textareas e imprime na tela as opçãoes da combo, todas com acentuação bizarra!
Alguém teve o mesmo problema? Conseguiu resolver?
Valeu!
#45
Posted 12/01/2006, 14:08
tipo tenho um formulario ( onde alterar e adiciona ) assim o cara entrar neste formulario para aparecer os dados para alteração eu queria q os 2 combos ficassem da mesma forma q foi adicionado , mostrando todos os registros no combo porém deixando o registro q ta pra alterar como PRIMEIRO ( SELECTED )
consegui deixar no primeiro ( facil ) porém no segundo combo onde os resultados e exibidos pelo ( campo_select.options[i] = new Option( string[0], string[1] ); ) não consegui
já fiz todo um esquema aqui, só preciso q deixe o resultado pra editar como SELECTED
tipo coloquei + um | SELECTED na parte de consulta do PHP porém como eu deixo ae neste trexo ele como SELECTED ?
nossa tres vez perguntei a mesma coisa
+ deu pra entender né ?
T+
PALMEIRAS - Primeiro campeão do mundo em 1951
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)