Ir para conteúdo

Arquivado

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

Ronaldo Bueno

onChange não funciona

Recommended Posts

o problema tem de estar ou no parametro id ou nas consultas as tabelas o exemplo que eu passei funciona perfeitamente e troca assim que se muda de paciente o problema agora e dae tente analisa na dropdown se os values estao bem, se o parametro id esta a ser bem passado se a consulta tambem as vezes o erro pode ser uma coisa minima.

 

A melhor solucao para solucionar um problema e testar por etapas neste caso existem 2 pontos importantes a serem testados

 

os valores da dropdown, se estao bem. Se sim entao o valor id esta a ser bem passado logo o problema esta na pagina que faz a consulta dos dados do relativo nome senao o problema esta na pagina principal na recepccao dos ids no dropdown

Compartilhar este post


Link para o post
Compartilhar em outros sites

e se depois de mostrar os dados, eu limpar essa variavel oid=request.QueryString("codigo"), tentei oid="", mas não funcionou, você conhece um jeito de fazer isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

escreva por baixo

 

echo $oid

enganei-me aqui era para dizer response.write(oid)

 

 

mas qto a sua pergunta nao podera apagar essa variavel pois e essa variavel que pega o id enviado na url, entende?

 

 

 

nao sei mais no que posso ajudar, mas vamos la resolver isso de vez:

 

roda a pagina principal.asp e ve o codigo fonte apartir do browser depois posta ae como esta o codigo na parte do select

Compartilhar este post


Link para o post
Compartilhar em outros sites

detectei um erro mas acho que nao era esse que você estava a ter mas e um erro

 

na pagina principal o seguinte option deve estar assim

 

<option value="" selected>Escolha o paciente desta lista</option>

na pagina de consulta repare na modificacao

 

<html>
<head>
</head>
<body>	
	<%

oid=request.QueryString("id")


' estas tres linhas servem para a opcao escolha um paciente pois se nao tiver este if vai da erro

if(oid="")then
response.write("")
else

Set objConn =  Server.CreateObject("ADODB.Connection")
			objConn.Open "DBQ=" & Server.MapPath("consultorio.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","",""
			'Selecciona os dados na tabela aberta
			strQuery = "Select * from pacientes where id="&oid&" order by nome "
			Set rs=Server.CreateObject("ADODB.Recordset")
			rs.Open strQuery, objConn
	
	 while not rs.EOF 
	%>
	<input type="text" value="<%=rs("nome")%>"/>
	<input type="text" value="<%=rs("plano")%>"/>
	<input type="text" value="<%=rs("tipo")%>"/>
	<input type="text" value="<%=rs("ncarteira")%>"/>
	<input type="text" value="<%=rs("mes_validade")%>"/>
	<input type="text" value="<%=rs("ano_validade")%>"/>
	<%
	rs.movenext
	wend
	   
	%>

  </body> 
 <%
			rs.close
			objConn.close
			set rs=nothing
			set objConn=nothing 
end if ' feche o if

%>

 
</html>

 

repare no codigo tem la dois comentarios

 

' estas tres linhas servem para a opcao escolha um paciente pois se nao tiver este if vai da erro

 

if(oid="")then

response.write("")

else

 

' feche o if

foi um lapso meu

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei o if e mesmo assim continua não mundando ....

 

quero agradecer muito, além de ter sua ajuda, ainda estou aprendendo mais ASP . obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehe esse problema esta mesmo mal, kkk ja vai num numero bastante de respostas .

 

Faca upload do seu codigo atual para eu dar uma olhada, senao vamos estar aqui uns 300 anos e o problema nao se resolve

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa é a pagina principal

 

<%

If session("nivel_acesso") = "" Then

Response.Redirect "../index.html"

Response.End

End If

If session("nivel_acesso") = 4 or session("nivel_acesso") = 1 Then

%>

<!--#include file="Connections/cadastro.asp" -->

<%

%>

<%

MM_editAction = CStr(Request("URL"))

If (Request.QueryString <> "") Then

MM_editAction = MM_editAction & "?" & Request.QueryString

End If

MM_abortEdit = false

MM_editQuery = ""

%>

<%

If (CStr(Request("MM_insert")) <> "") Then

MM_editConnection = MM_cadastro_STRING

MM_editTable = "consultorio"

MM_editRedirectUrl = "listar_todos.asp"

MM_fieldsStr = "paciente|value|tipoconsulta|value|dataconsulta|value|horaconsulta|value|med

icos|value|convenios|value|indicacao|value|sintomas|value|prontuario|value"

MM_columnsStr = "paciente|',none,''|tipoconsulta|',none,''|dataconsulta|',none,''|horaconsulta|',none,''|medicos|',none,''|convenios|',none,''|indicacao|',none,''|sintomas|',none,''|prontuario|',none,''"

MM_fields = Split(MM_fieldsStr, "|")

MM_columns = Split(MM_columnsStr, "|")

For i = LBound(MM_fields) To UBound(MM_fields) Step 2

MM_fields(i+1) = CStr(Request.Form(MM_fields(i)))

Next

If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then

If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then

MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString

Else

MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString

End If

End If

End If

%>

<%

If (CStr(Request("MM_insert")) <> "") Then

MM_tableValues = ""

MM_dbValues = ""

For i = LBound(MM_fields) To UBound(MM_fields) Step 2

FormVal = MM_fields(i+1)

MM_typeArray = Split(MM_columns(i+1),",")

Delim = MM_typeArray(0)

If (Delim = "none") Then Delim = ""

AltVal = MM_typeArray(1)

If (AltVal = "none") Then AltVal = ""

EmptyVal = MM_typeArray(2)

If (EmptyVal = "none") Then EmptyVal = ""

If (FormVal = "") Then

FormVal = EmptyVal

Else

If (AltVal <> "") Then

FormVal = AltVal

ElseIf (Delim = "'") Then

FormVal = "'" & Replace(FormVal,"'","''") & "'"

Else

FormVal = Delim + FormVal + Delim

End If

End If

If (i <> LBound(MM_fields)) Then

MM_tableValues = MM_tableValues & ","

MM_dbValues = MM_dbValues & ","

End if

MM_tableValues = MM_tableValues & MM_columns(i)

MM_dbValues = MM_dbValues & FormVal

Next

MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

If (Not MM_abortEdit) Then

Set MM_editCmd = Server.CreateObject("ADODB.Command")

MM_editCmd.ActiveConnection = MM_editConnection

MM_editCmd.CommandText = MM_editQuery

MM_editCmd.Execute

MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then

Response.Redirect(MM_editRedirectUrl)

End If

End If

End If

%>

<%

set Recordset1 = Server.CreateObject("ADODB.Recordset")

Recordset1.ActiveConnection = MM_cadastro_STRING

Recordset1.Source = "SELECT * FROM consultorio"

Recordset1.CursorType = 0

Recordset1.CursorLocation = 2

Recordset1.LockType = 3

Recordset1.Open()

Recordset1_numRows = 0

%>

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style>

body {font-family: arial}

h1 {color: #a0a0a0; font-size: 18px}

td {font-size: 10px}

</style>

<script language="JavaScript">

function txtBoxFormat(objForm, StrField, sMask, evtKeyPress) {

var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

 

if(document.all) { // Internet Explorer

nTecla = evtKeyPress.keyCode; }

else if(document.layers) { // Nestcape

nTecla = evtKeyPress.which;

}

 

sValue = objForm[strField].value;

sValue = sValue.toString().replace( "-", "" );

sValue = sValue.toString().replace( "-", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( "/", "" );

sValue = sValue.toString().replace( "/", "" );

sValue = sValue.toString().replace( "(", "" );

sValue = sValue.toString().replace( "(", "" );

sValue = sValue.toString().replace( ")", "" );

sValue = sValue.toString().replace( ")", "" );

sValue = sValue.toString().replace( ":", "" );

sValue = sValue.toString().replace( ":", "" );

sValue = sValue.toString().replace( " ", "" );

sValue = sValue.toString().replace( " ", "" );

fldLen = sValue.length;

mskLen = sMask.length;

 

i = 0;

nCount = 0;

sCod = "";

mskLen = fldLen;

 

while (i <= mskLen) {

bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))

bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == ":") || (sMask.charAt(i) == " "))

 

if (bolMask) {

sCod += sMask.charAt(i);

mskLen++; }

else {

sCod += sValue.charAt(nCount);

nCount++;

}

 

i++;

}

 

objForm[strField].value = sCod;

 

if (nTecla != 8) { // backspace

if (sMask.charAt(i-1) == "9") { // apenas números...

return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9

else { // qualquer caracter...

return true;

} }

else {

return true;

}

}

</script>

<script language="JavaScript">

function CheckForm () {

 

var errorMsg = "";

 

if (document.form1.paciente.selectedIndex==0){

errorMsg += "\n\tPaciente\t - Escolha o Paciente";

}

 

if (document.form1.tipoconsulta.selectedIndex==0){

errorMsg += "\n\tConsulta\t - Escolha o tipo de consulta";

}

 

if (document.form1.medicos.selectedIndex==0){

errorMsg += "\n\tMédicos\t - Escolha o Médico";

}

 

if (document.form1.convenios.selectedIndex==0){

errorMsg += "\n\tConvênios\t- Escolha o Convênio";

}

 

if (document.form1.dataconsulta.value == ""){

errorMsg += "\n\tData\t - Digite a data";

}

 

if (document.form1.horaconsulta.value == ""){

errorMsg += "\n\tHora\t - Digite a Hora";

}

 

if (document.form1.indicacao.value == ""){

errorMsg += "\n\tIndicação\t - Digite quem indicou";

}

 

if (document.form1.sintomas.value == ""){

errorMsg += "\n\tSintomas\t - Digite o(s) sintoma(s)";

}

 

//Se houver algum problema com o formulário ele indica

if (errorMsg != ""){

msg = "______________________________________________________________\n\n";

msg += "O registro não pode ser gravador porque há um erro com o formulário.\n";

msg += "Corrija o problema e clique em ENVIAR\n";

msg += "______________________________________________________________\n\n";

msg += "O(s) seguinte(s) campo(s) tem que ser(em) corrigido(s): -\n";

 

errorMsg += alert(msg + errorMsg + "\n\n");

return false;

}

 

return true;

}

</script>

<script>

var AJAXForms = false;

var LastField = null;

var isIE = false;

// on !IE we only have to initialize it once

if (window.XMLHttpRequest) {

AJAXForms = new XMLHttpRequest();

}

 

function escreve(field) {

 

if (window.XMLHttpRequest) {

// branch for IE/Windows ActiveX version

} else if (window.ActiveXObject) {

AJAXForms = new ActiveXObject("Microsoft.XMLHTTP");

}

 

AJAXForms.onreadystatechange = processChange;

AJAXForms.open("GET", "consulta.asp?codigo=" +field.value);

AJAXForms.send(null);

}

 

function processChange() {

if (AJAXForms.readyState == 4) {

 

document.getElementById("resulta").innerHTML=AJAXForms.responseText;

 

}

}

</script>

</head>

<body bgcolor="#FFFFFF" text="#000000">

<form method="post" action="<%=MM_editAction%>" name="form1" onSubmit="return CheckForm();">

<table align="center" width="674">

<tr valign="baseline">

<td nowrap align="right" colspan="4"><div align="center"><b>CADASTRO DE CONSULTÓRIO </b></div></td>

</tr>

<tr valign="baseline">

<td nowrap align="right" colspan="4"><div align="center"><b>Todos os campos são obrigatórios</b></div></td>

</tr>

<tr valign="baseline">

<td width="97" nowrap><div align="right"><b>Paciente:</b></div></td>

<td colspan="3">

 

<%

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;uid=aaaaa;pwd=aaaaa;database=aaaaa"

'Selecciona os dados na tabela aberta

strQuery = "select nome,codigo,plano,tipo,numerocarteira,mesvalidade,anovalidade from pacientes ORDER BY nome"

Set rs=Server.CreateObject("ADODB.Recordset")

rs.Open strQuery, objConn

%>

<select name="paciente" onChange="java script:escreve(this);">

<option value="" selected>Escolha o Paciente</option>

<%

while not rs.EOF

%>

<option value="<%=rs("codigo")%>"><%=rs("nome")%></option>

<%

rs.movenext

wend

%>

</select>

<%

rs.close

objConn.close

set rs=nothing

set objConn=nothing

%>

</td>

<tr>

<td align="right" nowrap> </td>

<td colspan="3" align="right" nowrap><div align="left"><div id="resulta"></div></div></td>

</tr>

<tr>

<td align="right" nowrap><div align="right"><strong>Tipo da Consulta </strong></div></td>

<td><select name="tipoconsulta" id="tipoconsulta">

<option>1ª Consulta</option>

<option>Retorno</option>

</select>

<td> </td>

<td> </td>

</tr>

<tr>

<td nowrap align="right"><b>Data da<br>

Consulta:</b></td>

<td><input name="dataconsulta" type="text" id="dataconsulta" onKeyPress="return txtBoxFormat(document.form1, 'dataconsulta', '99/99/9999', event);" value="<%=date%>" size="15" maxlength="10"></td>

<td><div align="right"><b>Hora da<br>

Consulta:</b></div></td>

<td><input name="horaconsulta" type="text" id="horaconsulta" onKeyPress="return txtBoxFormat(document.form1, 'horaconsulta', '99:99', event);" value="" size="15" maxlength="5"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right"><b>Médico(a):</b> </td>

<td colspan="3">

<%

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;uid=aaaaa;pwd=aaaaa;database=aaaaa"

strQuery = "select nome,codigo from medicos ORDER BY nome"

Set rs=Server.CreateObject("ADODB.Recordset")

rs.Open strQuery, objConn

%>

<select name="medicos" id="medicos">

<option value="" selected>Escolha o Médico</option>

<%

while not rs.eof

%>

<option value="<%=rs("nome")%>"><%=rs("nome")%></option>

<%

rs.movenext

wend

%>

</select>

<%

rs.close

objConn.close

set rs=nothing

set objConn=nothing

%>

</label></td>

</tr>

<tr valign="baseline">

<td nowrap align="right"><b>

Indicação: </b></td>

<td>

<input name="indicacao" type="text" id="indicacao" value="" size="40" maxlength="50"></td>

<td><div align="right"><b>Sintomas:</b></div></td>

<td><input name="sintomas" type="text" id="sintomas" value="" size="40" maxlength="100"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right"> </td>

<td colspan="3"><b>Observação:</b></td>

</tr>

<tr valign="baseline">

<td nowrap align="right"> </td>

<td colspan="3"><label>

<textarea name="prontuario" cols="80" rows="4" id="prontuario"></textarea>

</label></td>

</tr>

<tr valign="baseline">

<td nowrap align="right">

<div align="center"></div> </td>

<td nowrap align="right"><div align="left">

<input name="image" type=image src="../imagens/salvar.png" width="48" height="48">

</div></td>

<td nowrap align="right"> </td>

<td align="right" nowrap> </td>

</tr>

</table>

<input type="hidden" name="MM_insert" value="true">

</form>

</body>

</html>

<%

Recordset1.Close()

%>

<%

Else

Response.Redirect "../index.html"

Response.End

End If

%>

 

e essa a pagina de consulta

 

<html>

<head>

</head>

<body>

<%

oid=request.QueryString("codigo")

'response.write(oid)

if(oid="")then

response.write("")

else

 

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;uid=aaaaa;pwd=aaaaa;database=aaaaa"

'Selecciona os dados na tabela aberta

strQuery = "select nome,codigo,plano,tipo,numerocarteira,mesvalidade,anovalidade from pacientes where codigo="&oid&" ORDER BY nome"

Set rs=Server.CreateObject("ADODB.Recordset")

rs.Open strQuery, objConn

while not rs.EOF

%>

<input type="text" size="15" disabled="disabled" value="<%=rs("plano")%>"/>

<input type="text" size="15" disabled="disabled" value="<%=rs("tipo")%>"/>

<input type="text" size="15" disabled="disabled" value="<%=rs("numerocarteira")%>"/>

<input type="text" size="10" disabled="disabled" value="<%=rs("mesvalidade")%>"/>

<input type="text" size="5" disabled="disabled" value="<%=rs("anovalidade")%>"/>

<%

oid=""

rs.movenext

wend

%>

</body>

<%

rs.close

objConn.close

set rs=nothing

set objConn=nothing

end if

%>

</html>

 

obrigado mais uma vez, também estou revendo todo o código para ver se acho algum erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<%

oid=""

rs.movenext

wend

%>

 

esse oid="" nao e necessario

 

 

bem nao estou vendo o erro, mas provavlmente o erro vez sim da pagina principal. no FF execute a pagina principal que pelo que você diz nao funciona e va ao menu ferramentas>console de erros ae veja os erros que estao ocorrendo clique neles e veja se consegue resolver

Compartilhar este post


Link para o post
Compartilhar em outros sites

webmind, até agora não tinha testado FF, e lá funciona direitinho ...

 

agora ficou mais fácil, então é o IE que não roda, mas como na empresa todos usam IE, tenho que dar um jeito.

 

Vou fazer uma pesquisa no google relatando o prob e ve se acho alguma coisa.

 

Muito obrigado até aqui e valeu mesmo pela força.

 

Um grande Abs,

Compartilhar este post


Link para o post
Compartilhar em outros sites

webmind,

 

não tinha testado no FF, esta funcionando direitinho, então vou dar uma olhada por ai e ver se é algo q o IE bloqueia.

 

abs,

 

e muito obrigado pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

no ie pode ser algo mal declarado debugue no IE, se nao estiver ativo o debugador no Ie va em opcoes de (isto para IE7) opcoes internet>avancadas> e tire o visto das duas checkboxes onde diz disable script debugging e clique ok, rode o codigo e agora se houver algum erro ja deve mostrar uma caixa de erro.

 

 

Se conseguir poste o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz o que disse e não mudou nada ...

 

obrigado

mas nao era mesmo para mudar nada era para ver se mostrava algum erro!

 

 

sinceramente nao sei eu testei aqui tanto no IE como no FF e funcionou perfeitamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

então deve ser alguma conf no meu IE, ainda não achei nada no google sobre isso, mas quero agradecer muito pela sua ajuda. se souber de alguma coisa, é só postar, ai dou uma olhada, enquanto isso vou continuar procurando.

Abs,

Compartilhar este post


Link para o post
Compartilhar em outros sites

va em 4shared e faca up do seu sistema que eu dou uma olhada aqui. senao acho que nunca mais se resolve esse problema. rsrsrsrs

 

 

fico no aguardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

webmind, tive dando uma olhada com calma no google, mas como não entendo nada de ajax não consegui ir muito além, eles falam muito sobre o que esta em vermelho, acho que o erro esta aqui ...

 

<script>

var AJAXForms = false;

var LastField = null;

var isIE = false;

// on !IE we only have to initialize it once

if (window.XMLHttpRequest) {

AJAXForms = new XMLHttpRequest();

}

 

function escreve(field) {

 

if (window.XMLHttpRequest) {

// branch for IE/Windows ActiveX version

} else if (window.ActiveXObject) {

AJAXForms = new ActiveXObject("Microsoft.XMLHTTP");

}

 

AJAXForms.onreadystatechange = processChange;

AJAXForms.open("GET", "consulta.asp?codigo=" +field.value);

AJAXForms.send(null);

}

 

function processChange() {

if (AJAXForms.readyState == 4) {

 

document.getElementById("resulta").innerHTML=AJAXForms.responseText;

 

}

}

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim! Se nao der o problema nao e dae

 

 

<script type="text/javascript">
	function ajaxInit() {
		var req;
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(ex) {
				try {
					req = new XMLHttpRequest();
				} catch(exc) {
					alert("Esse browser não suporta Ajax");
					req = null;
				}
			}
		}
		return req;
	}
	function escreve(field){
		ajax = ajaxInit();
		ajax.open("GET", "consulta.asp?codigo=" +field.value,true);
		ajax.onreadystatechange=function() {
			if (ajax.readyState==4){
		 document.getElementById("resulta").innerHTML=AJAXForms.responseText;
			}
		}
		ajax.send(null);
	}


</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

webmind, tudo certo, funcionou perfeitamente, mas no outro código você usou a variavel como AJAXFORM e nesse novo estava como AJAX, então somente essa linha teve q ser alterada.

 

document.getElementById("resulta").innerHTML=AJAXForms.responseText;

 

para

 

document.getElementById("resulta").innerHTML=AJAX.responseText;

 

agradeço de coração a ajuda sua ajuda e só para poder baixar esse tópico rsrssrrrsrss que já esta quase um livro ... tentei mudar o value do option de codigo para nome, pois no banco ele esta gravando o código do paciente, mas dá o seguinte erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[MySQL][ODBC 3.51 Driver][mysqld-5.0.45-community-nt]Unknown column 'bbbbbbbbbbbbbbb' in 'where clause'

 

consulta.asp, line 18

 

e nessa linha 18 tem isso:

 

rs.Open strQuery, objConn

 

saberia o que é esse erro ? ou talvez onde eu tenho que mudar para gravar o nome ? já que estou mudando tudo que tem a palavra código para nome.

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.