Usuário com melhor resposta
Variáveis Dinâmicas na SP

Pergunta
-
Bom Dia pessoal;
Estou com uma dúvida, será que alguém poderia me ajudar?
Eu tenho um formulário de uma enquete para ser respondido. As perguntas são relacionadas a uma disciplina do ensino fundamental. O formulário é dinâmico e vem do banco de dados.
Gostaria de saber como declarar como parâmetro da procedure uma variável dinâmica.
Segue o código para que possam entender melhor:
--Página do Formulário--
<form id="habilidade" name="habilidade" method="post" action="cbc_salvar.asp">
<% disciplina = request.Form("disciplina")%>
<%
Set cbc_questoes=Conn.execute("S_LISTA_HABILIDADE @id_disciplina="&disciplina)
%>
<table width="80%" border="1" cellspacing="0" align="center">
<tr>
<td width=25%" align="center"><b><font face="Helvetica" size="2" >TÓPICO</font></b></td>
<td width=55%" align="center"><b><font face="Helvetica" size="2" >HABILIDADE</font></b></td>
<td align="center"><b><font face="Helvetica" size="2" >6</font></b> </td>
<td align="center"><b><font face="Helvetica" size="2" >7</font></b> </td>
<td align="center"><b><font face="Helvetica" size="2" >8</font></b> </td>
<td align="center"><b><font face="Helvetica" size="2" >9</font></b> </td>
<%
dim cont
cont=0
dim hab_hidden
%>
<% Do While not cbc_questoes.eof %>
<tr>
<td width=15%" align="center"><font face="Helvetica" size="2" >
<%=cbc_questoes("numero_topico")%>. <%=cbc_questoes("topico")%></font> </td>
<td width="55%" align="center"><font face="Helvetica" size="2" ><%=cbc_questoes("completo_habilidade")%>. <%=cbc_questoes("habilidade")%></font></b> </td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<label></label>
<label></label>
</b>
<label>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>" value="6">
</label></td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<label></label>
<label>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>" value="7">
</label>
</b>
<label></label></td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<label></label>
<label>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>" value="8">
</label>
</b>
<label></label></td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<label></label>
<label> <input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>" value="9">
</label>
</b>
<label></label></td>
<td align="center" style="visibility:hidden"><%=cbc_questoes("id_habilidade")%></td>
<% cont= cont+1%>
<%
cbc_questoes.movenext
Loop %>--A página que salva--
<form name="form1" method="post" action="">
<% cont= request.Form("cont")
cont2 = 0
Do While cont2 < cont
ano_ = request.Form("ano_"&cont)
id_habilidade = request.Form("id_habilidade"&cont)
set cbc_salvar = conn.execute("S_INSERE_ENQUETE_CBC @id_habilidade='"&id_habilidade&"', @ano="&ano_)
cont2 = cont2 + 1
cbc_salvar.movenext
Loop
%>-----------------------------------------------------------------------------------------
A variável que recebe o ano_ é dinâmica (ano_<%=cont%>), visto que dentro do while ela recebe um valor diferente a cada passagem.
Como eu coloco essa variável dinâmica na procedure para dar certo. Ou tem outra maneira de fazer?
Obrigada
Respostas
-
Paloma creio que esteja quase correto, porém você não está buscando o campo pelo javascript, acho que deveria ser algo assim:
<script language="javascript" type="text/javascript">
<!--
function confere(){
for (i=0; i<=<%=cont%>; i++){
ano = "ano_<%=cont%>"var elemento = document.getElementById(ano);
if (elemento.checked == false) {
alert("formulario enviado com sucesso");
return true;
}
else {
alert("Há campos em branco!");
return false;
}
}
}
//-->
</script>Segue um exemplo abaixo para lhe ajudar.
<html>
<head>
<script type="text/javascript">
function validar()
{
var elemento1 = document.getElementById("abc1");
var elemento2 = document.getElementById("abc2");
if ( elemento1.checked == true )
{
alert("Elemento 1 selecionado");
}
else
{
alert("Elemento 1 não selecionado");
}
if ( elemento2.checked == true )
{
alert("Elemento 2 selecionado");
}
else
{
alert("Elemento 2 não selecionado");
}
return window.confirm("Deseja enviar o form?");
}
</script>
</head>
<body>
<form action="" method="post" onsubmit="return validar();">
<input type="radio" name="abc" id="abc1" value="1" />Elemento 1</br>
<input type="radio" name="abc" id="abc2" value="2" />Elemento 2</br>
<input type="submit" value="Enviar" />
</form>
</body>
</html>Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. ***- Marcado como Resposta Paloma.ST quinta-feira, 6 de maio de 2010 12:07
Todas as Respostas
-
Paloma, poderia explicar melhor o que esta tentando realizar?
Você quer alterar o nome da variável dinamicamente?
Colocar variavel em qual procedure, por favor explique melhor?Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. *** -
Olá Estevam;
o valor da minha variável ano é dinâmico, variando de acordo com o valor do cont dentro do while:
ano_<%=cont%>
E eu preciso colocar ela como parâmetro da minha sp que salva os valores marcados no banco. Segue a procedure:
set cbc_salvar = conn.execute("S_INSERE_ENQUETE_CBC @id_habilidade='"&id_habilidade&"', @ano="&ano_)
Ela tem como parâmetro necessário o ano.
Mas, se eu colocar o nome da variável como ela está declarada dá erro.
Pode me ajudar por favor?
Abraços
-
Paloma, veja seu código abaixo, creio que o erro que esteja ocorrendo seja um erro de código mesmo, repare que no While você faz uma verificação do "cont2" com o "cont" porém no momento do Request.Form você utiliza o "cont", porém como esta variável não esta sendo incrementado fica em um valor fixo e sempre buscando um campo inexistente.
Altere o código abaixo:
<% cont= request.Form("cont")
cont2 = 0
Do While cont2 < cont
ano_ = request.Form("ano_"&cont)
id_habilidade = request.Form("id_habilidade"&cont)
set cbc_salvar = conn.execute("S_INSERE_ENQUETE_CBC @id_habilidade='"&id_habilidade&"', @ano="&ano_)
cont2 = cont2 + 1
cbc_salvar.movenext
Loop
%>Para:
<% cont= request.Form("cont")
cont2 = 0
Do While cont2 < cont
ano_ = request.Form("ano_"&cont2)
id_habilidade = request.Form("id_habilidade"&cont2)
set cbc_salvar = conn.execute("S_INSERE_ENQUETE_CBC @id_habilidade='"&id_habilidade&"', @ano="&ano_)
cont2 = cont2 + 1
cbc_salvar.movenext
Loop
%>De der erro, por favor envie o erro.
Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. *** -
-
Paloma não sei como esta sua procedure, mas acho que você deveria passar as váriaveis assim, pelo menos é como costumo fazer.
conn.execute("S_INSERE_ENQUETE_CBC '" & id_habilidade & "', " & ano_ )
Se quiser pode também tentar converter o ano para int.
conn.execute("S_INSERE_ENQUETE_CBC '" & id_habilidade & "', " & CInt(ano_) )
Verifique se a ordem de entrada dos parâmetros esta correta para procedure e se os tipos de dados estão batendo também, pois pelo que você descreveu a procedure aparentemente esta sendo executada pelo ASP, porém internamente no SQL não, pode ser também por existir algum IF dentro da procedure, no qual os parâmetros passados não conferem.
Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. *** -
Luiz,
Agora está guardando no banco.
Mais escreve um erro na página:
Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '='.
A linha da referência é a da procedure:
set cbc_salvar=conn.execute("S_INSERE_ENQUETE_CBC @id_habilidade="&id_habilidade&", @ano="&ano)
Sabe o q poderia ser?
Abç
-
Paloma,
Você conseguiu inserir os dados utilizando qual meio de execução o seu ou os que lhe enviei?
Pelo erro que foi passado é que o SQL não esta reconhecendo os sinais de igual (=) passados como parâmetros para a procedure, por isso lhe enviei as abaixo:
conn.execute("S_INSERE_ENQUETE_CBC '" & id_habilidade & "', " & ano_ )
Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. *** -
-
Paloma, acho que este erro aconteceu porque a variavel que passei estava errada, trazendo um valor nulo, tente com esta.
set Cbc_salvar=conn.execute("S_INSERE_ENQUETE_CBC '" & id_habilidade & "', " & ano_ )
Executando a procedure direto no banco funciona normal, certo?
Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. *** -
Ola Luiz;
O problema na verdade não era com a procedure.
Era no while. Mas agora está tudo certo.
WLw, pela ajuda.
Agora eu tenho outro problema na vdd.
Estou usando um javascript para verificar se todos os campos do meu formulário foram
preenchidos.
Mas não está funcionando.
Poderia me ajudar?
--Página do Formulário--
<% Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString") %>
<html>
<head>
<title>:: Enquete - CRV ::</title>
</head>
<body>
<form id="habilidade" name="habilidade" method="post" action="cbc_salvar.asp">
<p>
<% disciplina = request.Form("disciplina")%>
<%Set cbc_questoes=Conn.execute("S_LISTA_HABILIDADE @id_disciplina="&disciplina)%>
</p>
<p>Selecione o ano que você acha que pertence a habilidade: </p>
<table width="80%" border="1" cellspacing="0" align="center">
<tr>
<td width=25%" align="center"><b><font face="Helvetica" size="2" >TÓPICO</font></b></td>
<td width=55%" align="center"><b><font face="Helvetica" size="2" >HABILIDADE</font></b></td>
<td align="center"><b><font face="Helvetica" size="2" >6</font></b> </td>
<td align="center"><b><font face="Helvetica" size="2" >7</font></b> </td>
<td align="center"><b><font face="Helvetica" size="2" >8</font></b> </td>
<td align="center"><b><font face="Helvetica" size="2" >9</font></b> </td>
<%
dim cont
cont=0
%>
<% Do While not cbc_questoes.eof %>
<% cont= cont+1%>
<tr>
<td width="15%" align="justify"><font face="Helvetica" size="2" >
<%=cbc_questoes("numero_topico")%>. <%=cbc_questoes("topico")%></font> </td>
<td align=align="justify"><font face="Helvetica" size="2" ><input name="id_habilidade_<%=cont%>" type="hidden" id="id_habilidade_<%=cont%>" value="<%=cbc_questoes("id_habilidade")%>"><%=cbc_questoes("completo_habilidade")%>. <%=cbc_questoes("habilidade")%></font></td>
<td align="center"><font face="Helvetica" size="2" ></font></b> <label></label>
<label></label>
</b>
<label>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>" value="6">
</label></td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>2" value="7"></td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<label></label>
<label></label>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>3" value="8">
</b>
<label></label></td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<label></label>
<label></label>
</b>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>4" value="9">
<label></label></td>
<%
cbc_questoes.movenext
Loop %>
</table>
<label></label>
<label></label>
<input name="cont" type="hidden" id="cont" value="<%=cont%>">
<table width="200" border="0" align="center">
<tr>
<td><div align="center">
<input type="submit" name="salvar" id="salvar" value="Salvar" onClick="confere()">
</div></td>
<td>
<div align="center">
<input type="reset" name="limpar" id="limpar" value="Limpar">
</div></td>
</tr>
</table>
</form>
</body>
</html>
<script language="javascript" type="text/javascript">
<!--
function confere(){
for (i=0; i<=cont; i++){
ano_<%=cont%> = document.habilidade.ano_<%=cont%>.value;
if(ano_<%=cont%>=="") {
alert("Há campos não preenchidos!");
document.habilidade.ano_<%=cont%>.focus();
}
else {
<!--alert("formulario enviado com sucesso"); -->
}
}
}
//-->
</script>--------------------------------------------------------------------------------------------------
Abç
-
Paloma, qual mensagem de erro o script lhe da?
Outro problema que pode estar ocorrendo, percebi que no seu script a variável cont não está sendo inicializado o que pode não estar entrando no loop e pelo que percebi esta variável você gostaria de pegar do ASP e também se você esta dentro de um loop com váriavel "i" então você não precisa ficar setando variáveis em ASP, então creio que deva alterar seu script para o código abaixo:
<script language="javascript" type="text/javascript">
<!--
function confere(){
for (i=0; i <<%=cont%>; i++){
ano = document.habilidade.ano_+i.value;
if(ano_+i == "") {
alert("Há campos não preenchidos!");
document.habilidade.ano_+i.focus();
}
else {
<!--alert("formulario enviado com sucesso"); -->
}
}
}
//-->
</script>Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. *** -
Fiz aki as mudanças conforme você disse e conforme eu achei que pudesse estar errado.
O script não me retorna um erro. Ele apenas não faz o que deve ser feito.
Ou seja, preciso q meu usuário marque um radionbutton por opção e o script está deixando passar sem barrar qdo ele não é marcado.
Eu acho que pode ser um erro com o jeito que eu escrevi.
Mais não sei encontrar.
Nunca fiz nenhum JavaScript.
--Desesperada já-- kkkk
-----------------------------------------------------------------------------------------------------
O script está assim:
<script language="javascript" type="text/javascript">
<!--
function confere(){
for (i=0; i<=<%=cont%>; i++){
if(("ano_"&cont&i).value=="") {
alert("Há campos em branco!");
}
else {
alert("formulario enviado com sucesso");
}
}
}
//-->
</script>
-
-
Paloma para você verificar o radio button, você utiliza o checked e não o value como está utilizando.
Para cancelar o envio do form você precisa fazer a chamada da função na tag form pelo método onsubmit e retornando um valor, exemplo:
Tag Form:
<form id="habilidade" name="habilidade" method="post" action="cbc_salvar.asp" onsubmit="return confere();">
Já sua função creio que deva ficar assim:
<script language="javascript" type="text/javascript">
<!--
function confere(){
for (i=0; i<=<%=cont%>; i++){ano = document.habilidade.ano_+i.value;
if (ano.checked == false) {alert("Há campos em branco!");
return false;
}
else {
alert("formulario enviado com sucesso");
return true;
}
}
}
//-->
</script>Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. *** -
Ah tá, então com o radio button eu vopu colocar checked!
Blz! Mudei agora, mas ainda assim ele não entra no if de jeito nenhum.
Eu penso que teria que colocar o i no if. Pra que ele pudesse verificar o ano e o i. Fiz algumas mudanças no código.
O que tem de errado?
<script language="javascript" type="text/javascript">
<!--
function confere(){
for (i=0; i<=<%=cont%>; i++){
ano = ("ano_<%=cont%>")
if (ano.checked == false) {
alert("formulario enviado com sucesso");
return true;
}
else {
alert("Há campos em branco!");
return false;
}
}
}
//-->
</script> -
Paloma creio que esteja quase correto, porém você não está buscando o campo pelo javascript, acho que deveria ser algo assim:
<script language="javascript" type="text/javascript">
<!--
function confere(){
for (i=0; i<=<%=cont%>; i++){
ano = "ano_<%=cont%>"var elemento = document.getElementById(ano);
if (elemento.checked == false) {
alert("formulario enviado com sucesso");
return true;
}
else {
alert("Há campos em branco!");
return false;
}
}
}
//-->
</script>Segue um exemplo abaixo para lhe ajudar.
<html>
<head>
<script type="text/javascript">
function validar()
{
var elemento1 = document.getElementById("abc1");
var elemento2 = document.getElementById("abc2");
if ( elemento1.checked == true )
{
alert("Elemento 1 selecionado");
}
else
{
alert("Elemento 1 não selecionado");
}
if ( elemento2.checked == true )
{
alert("Elemento 2 selecionado");
}
else
{
alert("Elemento 2 não selecionado");
}
return window.confirm("Deseja enviar o form?");
}
</script>
</head>
<body>
<form action="" method="post" onsubmit="return validar();">
<input type="radio" name="abc" id="abc1" value="1" />Elemento 1</br>
<input type="radio" name="abc" id="abc2" value="2" />Elemento 2</br>
<input type="submit" value="Enviar" />
</form>
</body>
</html>Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. ***- Marcado como Resposta Paloma.ST quinta-feira, 6 de maio de 2010 12:07
-
Sim! Agora deu certinho.
Ficou assim:
<script language="javascript" type="text/javascript">
<!--
function confere()
{
var i=0
for (i=0; i<=(<%=cont%>); i++)
{
ano = ("ano_<%=cont%>")
var elemento = document.getElementById(ano);
if (elemento.checked == true)
{
alert("Formulario enviado com sucesso");
return true;
}
else
{
alert("Há campos em branco!");
return false;
}
}
}
//-->
</script>--------------------------------------------------------------------------------------------
Só tem uma coisa ...
Quando aparece o alert, ele está aparecendo duas vezes.
Como se tivesse passando pelo for de novo.
Abç
-
Já descobri pq dá a msg duas vezes.
Ele executa o confere() duas vezes, pq tem uma vez no onClick e outra
no form.
Mas preciso das duas pq se não não funciona. Se eu tirar o do form ele vai direto pra
proxima página.
Se eu tirar o do OnClik ele não verifica certo.
O que eu posso fazer?
Abç
-
-
-
-
Segue:
<% Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString") %>
<html>
<head>
<title>:: Enquete - CRV ::</title>
</head>
<body>
<form id="habilidade" name="habilidade" method="post" action="cbc_salvar.asp" onSubmit="return confere();">
<p>
<% disciplina = request.Form("disciplina")%>
<%Set cbc_questoes=Conn.execute("S_LISTA_HABILIDADE @id_disciplina="&disciplina)%>
</p>
<p>Selecione o ano que você acha que pertence a habilidade: </p>
<table width="80%" border="1" cellspacing="0" align="center">
<tr>
<td width=25%" align="center"><b><font face="Helvetica" size="2" >TÓPICO</font></b></td>
<td width=55%" align="center"><b><font face="Helvetica" size="2" >HABILIDADE</font></b></td>
<td align="center"><b><font face="Helvetica" size="2" >6</font></b> </td>
<td align="center"><b><font face="Helvetica" size="2" >7</font></b> </td>
<td align="center"><b><font face="Helvetica" size="2" >8</font></b> </td>
<td align="center"><b><font face="Helvetica" size="2" >9</font></b> </td>
<%
dim cont
cont=0
%>
<% Do While not cbc_questoes.eof %>
<% cont= cont+1%>
<tr>
<td width="15%" align="justify"><font face="Helvetica" size="2" >
<%=cbc_questoes("numero_topico")%>. <%=cbc_questoes("topico")%></font> </td>
<td align=align="justify"><font face="Helvetica" size="2" ><input name="id_habilidade_<%=cont%>" type="hidden" id="id_habilidade_<%=cont%>" value="<%=cbc_questoes("id_habilidade")%>"><%=cbc_questoes("completo_habilidade")%>. <%=cbc_questoes("habilidade")%></font></td>
<td align="center"><font face="Helvetica" size="2" ></font></b> <label></label>
<label></label>
</b>
<label>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>" value="6">
</label></td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>2" value="7"></td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<label></label>
<label></label>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>3" value="8">
</b>
<label></label></td>
<td align="center"><font face="Helvetica" size="2" >
</font>
<label></label>
<label></label>
</b>
<input name="ano_<%=cont%>" type="radio" id="ano_<%=cont%>4" value="9">
<label></label></td>
<%
cbc_questoes.movenext
Loop %>
</table>
<label></label>
<label></label>
<input name="cont" type="hidden" id="cont" value="<%=cont%>">
<table width="200" border="0" align="center">
<tr>
<td><div align="center">
<input type="submit" name="salvar" id="salvar" value="Salvar" onClick="confere()">
</div></td>
<td>
<div align="center">
<input type="reset" name="limpar" id="limpar" value="Limpar">
</div></td>
</tr>
</table>
</form>
</body>
</html>
<script language="javascript" type="text/javascript">
<!--
function confere()
{
var i=1
for (i=1; i<=(<%=cont%>); i++)
{
ano = ("ano_<%=cont%>")
var elemento = document.getElementById(ano);
if (elemento.checked == false)
{
alert("Você deve responder a todas habilidades!" );
return false;
}
else
{
alert("Formulario enviado com sucesso");
return true;
}
}
}
//-->
</script>
---------------------------------------------------------------------------------------Abç
-
Paloma, realmente no seu caso a situação é um pouco mais complicada, segue possível solução:
1) Retirar a chamado do onclick e somente deixar no onsubmit.
2) Trocar o javascript para este abaixo:
<script language="javascript" type="text/javascript">
<!--
function confere()
{
var allChecked = false;
var i=1
for (i=1; i<=(<%=cont%>); i++)
{
var ano = 'ano_'+i;
var optSelected = false;
for (var z = 0; z < eval('document.habilidade.'+ano+'.length'); z++)
{
if ( eval('document.habilidade.'+ano+'['+z+'].checked') == true )
{
optSelecionado = true;
break;
}
}
if ( i == 1 )
allChecked = optSelecionado;
else if ( i > 1 && allChecked == false )
allChecked = false;
else
allChecked = optSelecionado;
}
return allChecked;
}
//-->
</script>Em todo caso segue um teste que fiz para ajudar.
<html>
<head>
<script type="text/javascript">
function validar()
{
var geral = false;
for (var z = 1; z <= 3; z++)
{
var ano = z;
var optSelecionado = false;
for (var i = 0; i < eval('document.frm.abc'+ano+'.length'); i++)
{
if ( eval('document.frm.abc'+ano+'['+i+'].checked') == true )
{
optSelecionado = true;
break;
}
}
if ( z == 1 )
geral = optSelecionado;
else if ( z > 1 && geral == false)
geral = false;
else
geral = optSelecionado;
}
return geral;
}
</script>
</head>
<body>
<form name="frm" action="" method="post" onsubmit="return validar();">
Radio 1<br />
<input type="radio" name="abc1" id="abc1" value="1" />Elemento 1</br>
<input type="radio" name="abc1" id="abc1" value="2" />Elemento 2</br>
Radio 2<br />
<input type="radio" name="abc2" id="abc2" value="1" />Elemento 1</br>
<input type="radio" name="abc2" id="abc2" value="2" />Elemento 2</br>
<input type="radio" name="abc2" id="abc2" value="3" />Elemento 2</br>
Radio 3<br />
<input type="radio" name="abc3" id="abc3" value="1" />Elemento 1</br>
<input type="radio" name="abc3" id="abc3" value="2" />Elemento 2</br>
<input type="radio" name="abc3" id="abc3" value="3" />Elemento 2</br>
<input type="submit" value="Enviar" />
</form>
</body>
</html>Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. *** -
Eu descobri que o erro não era extamente no JavaScript.
Pq na realidade ele funcionava certinho qdo selecionava determinada disciplina e não funciona em outras. O erro deve estar em algum outro lugar do meu código.
Que eu ainda não faço idéia de onde esteja.
Vou analizar ele e dou retorno.
Mas desde já vou marcar como resposta certa o Script q eu estou usando.
E agradeço muito pela ajuda.
Abçs
Paloma Alves