..:: MX Studio Fóruns ::..: radios selecionados, mas seus valores são textos - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

radios selecionados, mas seus valores são textos

#1 User is offline   Martha Christiane 

  • Group: Membros
  • Posts: 28
  • Joined: 29-November 05

  Posted 30 December 2005 - 09:36 PM

Pedro, Pessoal
permitam-me tirar mais uma dúvida.
abaixo eu tenho o seguinte exemplo de flash form.
O Pedro me ajudou bastante, qdo precisei ter um checkbox selecionado ou não conforme a seleção no grid.
Minha penúria agora é se eu posso ter a mesma lógica do checkbox, só que para radiobuttons, mas com um um diferencial:
Meu radios trazem valores em texto e não true/false ou 0/1.
Como está abaixo o campo plano, ele traz os valores semanal, mensal e anual, com isso preciso que os radios fossem marcados conforme os registros selecionados.
Será que é possível?
Grata a todos e um feliz 2006 pessoal!
ColdFusion
<cfscript>
listarEquipe = queryNew("id, nome, email, funcao, descricao, plano");

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',1);
querySetCell(listarEquipe,'nome','Martha Christiane');
querySetCell(listarEquipe,'email','martha.christiane@site.com.br');
querySetCell(listarEquipe,'funcao','Webaster');
querySetCell(listarEquipe,'descricao','Responsável pelo site');
querySetCell(listarEquipe,'plano','Anual');

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',2);
querySetCell(listarEquipe,'nome','Paulo Santos');
querySetCell(listarEquipe,'email','paulo.santos@site.com.br');
querySetCell(listarEquipe,'funcao','Administrador');
querySetCell(listarEquipe,'descricao','Responsável pelo Administração da empersa');
querySetCell(listarEquipe,'plano','Mensal');

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',3);
querySetCell(listarEquipe,'nome','Ana Luíza');
querySetCell(listarEquipe,'email','ana.luiza@site.com.br');
querySetCell(listarEquipe,'funcao','Usuária');
querySetCell(listarEquipe,'descricao','Usuária do site');
querySetCell(listarEquipe,'plano','Mensal');

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',4);
querySetCell(listarEquipe,'nome','Patrícia França');
querySetCell(listarEquipe,'email','patricia.franca@site.com.br');
querySetCell(listarEquipe,'funcao','Gerente');
querySetCell(listarEquipe,'descricao','Gerente da empresa');
querySetCell(listarEquipe,'plano','Semanal');

</cfscript>

<cfform name="equipe" format="flash" action="acoes.cfm" width="600" height="530">

<!---Início da definição do uso da tela--->
<cfformgroup type="hbox" height="500">

<!--- início do painel de resultados --->
<cfformgroup type="vbox">
<cfformgroup type="panel" height="206" label="Nossa Equipe">
<cfgrid name="listingGrid" query="listarEquipe" rowheaders="false">
<cfgridcolumn name="nome" header="Nome Completo" width="260" />
<cfgridcolumn name="email" header="E-mail de Contato" width="120" />
<cfgridcolumn name="funcao" header="Função" width="120" />
</cfgrid>
</cfformgroup>

<!---Campos para Edição / Exclusão de Dados--->
<cfformgroup type="page" label="Editar / Excluir Dados da Equipe">
<cfinput type="text"
name="nome"
label="Nome do Funcionário:"
bind="{listingGrid.dataProvider[listingGrid.selectedIndex]['nome']}"
onChange="listingGrid.dataProvider.editField(listingGrid.selectedIndex, 'nome', nome.text);"
required="yes"
message="Entre com seu nome"
width="200">

<cfinput type="text"
name="email"
label="E-mail de Contato:"
bind="{listingGrid.dataProvider[listingGrid.selectedIndex]['email']}"
onChange="listingGrid.dataProvider.editField(listingGrid.selectedIndex, 'email', email.text);"
required="yes"
validate="email"
message="Entre com um e-mail válido."
width="200">

<cfinput type="text"
name="funcao"
label="Função Executada:"
bind="{listingGrid.dataProvider[listingGrid.selectedIndex]['funcao']}"
onChange="listingGrid.dataProvider.editField(listingGrid.selectedIndex, 'funcao', funcao.text);"
required="yes"
message="Entre com sua função"
width="200">

<cfinput type="text"
name="descricao"
label="Descrição:"
bind="{listingGrid.dataProvider[listingGrid.selectedIndex]['descricao']}"
onChange="listingGrid.dataProvider.editField(listingGrid.selectedIndex, 'descricao', descricao.text);"
width="200">

<cfformgroup type="hbox">
<cfformgroup type="horizontal">
<cfinput type="radio" name="plano" value="semanal" label="Semanal" />
<cfinput type="radio" name="plano" value="mensal" label="Mensal" />
<cfinput type="radio" name="plano" value="anual" label="Anual" />
</cfformgroup>
</cfformgroup>

<cfformitem type="spacer" height="10"></cfformitem>
<!--- Início dos Botões de ação --->
<cfformgroup type="horizontal">
<cfinput type="submit" name="editBtn" value="Atualizar Dados" />
</cfformgroup>
</cfformgroup>
<!---Fim do tab Adicionar / Excluir dados--->

</cfformgroup>
<!--- fim do painel de resultados --->

</cfformgroup>
<!---Fim da definição do uso da tela--->

</cfform>

0

#2 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 03 January 2006 - 06:39 PM

Radio.changeSelectedRadio(index, bool=false)
ColdFusion

<cfscript>
listarEquipe = queryNew("id, nome, email, funcao, descricao, plano");

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',1);
querySetCell(listarEquipe,'nome','Martha Christiane');
querySetCell(listarEquipe,'email','martha.christiane@site.com.br');
querySetCell(listarEquipe,'funcao','Webaster');
querySetCell(listarEquipe,'descricao','Responsável pelo site');
querySetCell(listarEquipe,'plano','Anual');

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',2);
querySetCell(listarEquipe,'nome','Paulo Santos');
querySetCell(listarEquipe,'email','paulo.santos@site.com.br');
querySetCell(listarEquipe,'funcao','Administrador');
querySetCell(listarEquipe,'descricao','Responsável pelo Administração da empersa');
querySetCell(listarEquipe,'plano','Mensal');

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',3);
querySetCell(listarEquipe,'nome','Ana Luíza');
querySetCell(listarEquipe,'email','ana.luiza@site.com.br');
querySetCell(listarEquipe,'funcao','Usuária');
querySetCell(listarEquipe,'descricao','Usuária do site');
querySetCell(listarEquipe,'plano','Mensal');

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',4);
querySetCell(listarEquipe,'nome','Patrícia França');
querySetCell(listarEquipe,'email','patricia.franca@site.com.br');
querySetCell(listarEquipe,'funcao','Gerente');
querySetCell(listarEquipe,'descricao','Gerente da empresa');
querySetCell(listarEquipe,'plano','Semanal');

</cfscript>

<cfform name="equipe" format="flash" action="acoes.cfm" width="600" height="530">

<!---Início da definição do uso da tela--->
<cfformgroup type="hbox" height="500">

<!--- início do painel de resultados --->
<cfformgroup type="vbox">
<cfformgroup type="panel" height="206" label="Nossa Equipe">
<cfgrid name="listingGrid" query="listarEquipe" rowheaders="false"
onChange="
var i = 0;
var control = true;
while(control){
if(_root.listingGrid.selectedItem.data == _root.plano.radioList[i].data){
_root.plano.changeSelectedRadio(i);
control=false;
}
if(i==_root.plano.radioList.length){
control=false;
}
i++;
}"
>
<cfgridcolumn name="nome" header="Nome Completo" width="260" />
<cfgridcolumn name="email" header="E-mail de Contato" width="120" />
<cfgridcolumn name="funcao" header="Função" width="120" />
</cfgrid>


</cfformgroup>

<!---Campos para Edição / Exclusão de Dados--->
<cfformgroup type="page" label="Editar / Excluir Dados da Equipe">
<cfinput type="text"
name="nome"
label="Nome do Funcionário:"
bind="{listingGrid.dataProvider[listingGrid.selectedIndex]['nome']}"
onChange="listingGrid.dataProvider.editField(listingGrid.selectedIndex, 'nome', nome.text);"
required="yes"
message="Entre com seu nome"
width="200">

<cfinput type="text"
name="email"
label="E-mail de Contato:"
bind="{listingGrid.dataProvider[listingGrid.selectedIndex]['email']}"
onChange="listingGrid.dataProvider.editField(listingGrid.selectedIndex, 'email', email.text);"
required="yes"
validate="email"
message="Entre com um e-mail válido."
width="200">

<cfinput type="text"
name="funcao"
label="Função Executada:"
bind="{listingGrid.dataProvider[listingGrid.selectedIndex]['funcao']}"
onChange="listingGrid.dataProvider.editField(listingGrid.selectedIndex, 'funcao', funcao.text);"
required="yes"
message="Entre com sua função"
width="200">

<cfinput type="text"
name="descricao"
label="Descrição:"
bind="{listingGrid.dataProvider[listingGrid.selectedIndex]['descricao']}"
onChange="listingGrid.dataProvider.editField(listingGrid.selectedIndex, 'descricao', descricao.text);"
width="200">

<cfformgroup type="hbox">
<cfformgroup type="horizontal">
<cfinput type="radio" name="plano" value="semanal" label="Semanal" />
<cfinput type="radio" name="plano" value="mensal" label="Mensal" />
<cfinput type="radio" name="plano" value="anual" label="Anual" />
</cfformgroup>
</cfformgroup>

<cfformitem type="spacer" height="10"></cfformitem>
<!--- Início dos Botões de ação --->
<cfformgroup type="horizontal">
<cfinput type="submit" name="editBtn" value="Atualizar Dados" />
</cfformgroup>
</cfformgroup>
<!---Fim do tab Adicionar / Excluir dados--->

</cfformgroup>
<!--- fim do painel de resultados --->

</cfformgroup>
<!---Fim da definição do uso da tela--->

</cfform>

0

#3 User is offline   Martha Christiane 

  • Group: Membros
  • Posts: 28
  • Joined: 29-November 05

Posted 03 January 2006 - 07:04 PM

QUOTE(pcsilva @ 3/1/2006 18:01:52)
Radio.changeSelectedRadio(index, bool=false)

Olá Pedro, tudo bem?
Fiz o teste, mas não deu certo. huh.gif

QUOTE
Outra coisa, vi no post ActionScript X CFFORM(Flash), Tecnologia AS para forms Flash no CF, onde o warmath, perguntou onde se pode estudar sobre os métodos e propriedades de determinado controle , e vc respondeu undocumented .
Isso siginifica que não há um local? é na base do testando mesmo??
Desculpe o pouco conhecimento... tongue.gif

0

#4 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 03 January 2006 - 07:12 PM

Qual sua versão de CF
0

#5 User is offline   Martha Christiane 

  • Group: Membros
  • Posts: 28
  • Joined: 29-November 05

Posted 03 January 2006 - 07:16 PM

QUOTE(pcsilva @ 3/1/2006 19:01:42)
Qual sua versão de CF
View Post

versão 7,0,1,116466 , com updates e tudo mais.
0

#6 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 03 January 2006 - 07:28 PM

Eu tô sem cf aqui,

mas o RadioButton possui algumas propriedades.

ele é um dos poucos que podem replicar o atributo name na tag cfinput, isso porque cada tag cfinput de um determinado name, é transformado em item de uma array e o atributo name é o grupo do radio, esse grupo recebe o array em radioList

então no seu caso


<cfinput type="radio" name="plano" value="semanal" label="Semanal" />
<cfinput type="radio" name="plano" value="mensal" label="Mensal" />
<cfinput type="radio" name="plano" value="anual" label="Anual" />


o grupo é plano e o array possui três itens,
e ficaria algo como

_root.plano.radioList


então você precisa percorer o array e comparar os dados da grid com o _root.plano.radioList[index].data


certo _root.listingGrid.selectedItem.plano
errado _root.listingGrid.selectedItem.data


ActionScript

var i = 0;
var control = true;
while(control){
      if(_root.listingGrid.selectedItem.plano == _root.plano.radioList[i].data){
            _root.plano.changeSelectedRadio(i);
            control=false;
      }
      if(i==_root.plano.radioList.length){
            control=false;
      }
      i++;
}




0

#7 User is offline   Martha Christiane 

  • Group: Membros
  • Posts: 28
  • Joined: 29-November 05

Posted 04 January 2006 - 10:19 AM

QUOTE(pcsilva @ 3/1/2006 19:01:59)
Eu tô sem cf aqui,

mas o RadioButton possui algumas propriedades.

ele é um dos poucos que podem replicar o atributo name na tag cfinput, isso porque cada tag cfinput de um determinado name, é transformado em item de uma array e o atributo name é o grupo do radio, esse grupo recebe o array em radioList

então no seu caso


<cfinput type="radio" name="plano" value="semanal" label="Semanal" />
<cfinput type="radio" name="plano" value="mensal" label="Mensal" />
<cfinput type="radio" name="plano" value="anual" label="Anual" />


o grupo é plano e o array possui três itens,
e ficaria algo como

_root.plano.radioList


então você precisa percorer o array e comparar os dados da grid com o _root.plano.radioList[index].data


certo _root.listingGrid.selectedItem.plano
errado _root.listingGrid.selectedItem.data


ActionScript

var i = 0;
var control = true;
while(control){
      if(_root.listingGrid.selectedItem.plano == _root.plano.radioList[i].data){
            _root.plano.changeSelectedRadio(i);
            control=false;
      }
      if(i==_root.plano.radioList.length){
            control=false;
      }
      i++;
}

View Post


Entendi a lógica Pedro. Só não entendo por que não está dando certo.. o código parece estar certinho... blink.gif
Vou tentando por aqui!
Obrigada mesmo!
0

#8 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 04 January 2006 - 11:19 PM

ColdFusion
<cfform name="form1" id="form1" method="post" format="flash">
<cfsavecontent variable="click">
for(var i = 0; i < _root.radiogroup.indexNumber; i++){
_root.radiogroup.radioList[i].label = _root.radiogroup.radioList[i].data+' - selecionado '+_root.radiogroup.radioList[i].__state;
}
</cfsavecontent>
<cfinput type="radio" name="radiogroup" value="0" onClick="#click#" />
<cfinput type="radio" name="radiogroup" value="1" onClick="#click#" />
<cfinput type="radio" name="radiogroup" value="2" onClick="#click#" />
<cfsavecontent variable="click">
if(_root.radiogroup.selectedRadio == null){
alert('selecione um item, Senhor USUÁRIO!','Erro');
}else{
var selecionado = _root.radiogroup.selectedRadio;
alert('data = '+selecionado.data+newline+'label = '+selecionado.label+newline+'__state = '+selecionado.__state+newline+'index = '+selecionado.indexNumber+newline+'Número de itens = '+_root.radiogroup.indexNumber);
}
</cfsavecontent>
<cfinput name="click_me" type="button" value="click me" onClick="#click#" />
<cfselect label="selecioanr por index" name="selectIndice" width="150" onChange="
if(isNaN(_root.selectIndice.value)){
alert('Não é um número');
}else{
_root.radiogroup.changeSelectedRadio(_root.selectIndice.value);
}
"
>
<option value=""></option>
<option value="0">0</option>
<option value="1">1 Claudio</option>
<option value="2">2</option>
</cfselect>
<cfselect label="selecionar por data" name="selectTexto" width="150" onChange="
var i = 0;
var control = true;
while(control){
if(_root.radiogroup.radioList[i].data == _root.selectTexto.text){
_root.radiogroup.changeSelectedRadio(i);
control = false;
}
if(_root.radiogroup.radioList.length == i){
control = false;
}
i++;
}"
>
<option value=""></option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</cfselect>
</cfform>

0

#9 User is offline   Martha Christiane 

  • Group: Membros
  • Posts: 28
  • Joined: 29-November 05

Posted 05 January 2006 - 11:46 AM

Pedro,
desculpe a minha falta de conhecimento e o trabalho que por ventura estou lhe ocasionando, mas é que não consegui adaptar ao meu exemplo usando cfgrid. wub.gif
0

#10 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 05 January 2006 - 01:28 PM

Martha,

olhando seus dados com atenção verifiquei que, o seu valor de radio está diferente do valor da coluna da grid.


_root.listingGrid.selectedItem.plano = Mensal
_root.plano.radioList[i].data = mensal

então ou altere os dados da grid e use
ActionScript
var i = 0;
var control = true;
while(control){
       if(_root.listingGrid.selectedItem.plano == _root.plano.radioList[i].data){
             _root.plano.changeSelectedRadio(i);
             control=false;
       }
       if(i==_root.plano.radioList.length){
             control=false;
       }
       i++;
}



ou então aletere o script para comparar o valor da grid com o valor do label do radio pois eles estão iguais
ActionScript
var i = 0;
var control = true;
while(control){
       if(_root.listingGrid.selectedItem.plano == _root.plano.radioList[i].label){
             _root.plano.changeSelectedRadio(i);
             control=false;
       }
       if(i==_root.plano.radioList.length){
             control=false;
       }
       i++;
}


ou ainda faça tratamento de caso de string


ActionScript
var i = 0;
var control = true;
while(control){
       if(_root.listingGrid.selectedItem.plano.toUpperCase() == _root.plano.radioList[i].data.toUpperCase()){
             _root.plano.changeSelectedRadio(i);
             control=false;
       }
       if(i==_root.plano.radioList.length){
             control=false;
       }
       i++;
}


0

#11 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 05 January 2006 - 01:33 PM

QUOTE(Martha Christiane @ 3/1/2006 19:01:31)
QUOTE
Outra coisa, vi no post ActionScript X CFFORM(Flash), Tecnologia AS para forms Flash no CF, onde o warmath, perguntou onde se pode estudar sobre os métodos e propriedades de determinado controle , e vc respondeu undocumented .
Isso siginifica que não há um local? é na base do testando mesmo??
Desculpe o pouco conhecimento... tongue.gif

View Post



O uso de actionscript ainda não foi documentado para o uso em ColdFusion, é precisamente isso.

Mas nada impede que consultemos outras areas
http://livedocs.macromedia.com/flex/
http://livedocs.macromedia.com/flash/mx2004/index.html
http://livedocs.macromedia.com/flash/8/index.html


0

#12 User is offline   Martha Christiane 

  • Group: Membros
  • Posts: 28
  • Joined: 29-November 05

Posted 05 January 2006 - 03:58 PM

Pedro vc é demais!!!!!!!! thumbup.gif smartass.gif
Alterei os dados da grid e agorá tá perfeito!
Que Deus possa lhe dar em dobro tudo de bom que vc faz pelo próximo!
Muito obrigada!!! tongue.gif
O código final ficou assim:
ColdFusion
<cfscript>
listarEquipe = queryNew("id, nome, email, funcao, descricao, plano");

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',1);
querySetCell(listarEquipe,'nome','Martha Christiane');
querySetCell(listarEquipe,'email','martha.christiane@site.com.br');
querySetCell(listarEquipe,'funcao','Webaster');
querySetCell(listarEquipe,'descricao','Responsável pelo site');
querySetCell(listarEquipe,'plano','Anual');

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',2);
querySetCell(listarEquipe,'nome','Paulo Santos');
querySetCell(listarEquipe,'email','paulo.santos@site.com.br');
querySetCell(listarEquipe,'funcao','Administrador');
querySetCell(listarEquipe,'descricao','Responsável pelo Administração da empersa');
querySetCell(listarEquipe,'plano','Mensal');

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',3);
querySetCell(listarEquipe,'nome','Ana Luíza');
querySetCell(listarEquipe,'email','ana.luiza@site.com.br');
querySetCell(listarEquipe,'funcao','Usuária');
querySetCell(listarEquipe,'descricao','Usuária do site');
querySetCell(listarEquipe,'plano','Mensal');

queryAddRow(listarEquipe);
querySetCell(listarEquipe,'id',4);
querySetCell(listarEquipe,'nome','Patrícia França');
querySetCell(listarEquipe,'email','patricia.franca@site.com.br');
querySetCell(listarEquipe,'funcao','Gerente');
querySetCell(listarEquipe,'descricao','Gerente da empresa');
querySetCell(listarEquipe,'plano','Semanal');

</cfscript>

<cfform name="equipe" format="flash" width="600">
<cfsavecontent variable="onchange">
var i = 0;
var control = true;
while(control){
if(_root.listingGrid.selectedItem.plano == _root.plano.radioList[i].data){
_root.plano.changeSelectedRadio(i);
control=false;
}
if(i==_root.plano.radioList.length){
control=false;
}
i++;
}
</cfsavecontent>

<cfformgroup type="hbox" height="500">

<cfformgroup type="vbox">
<cfformgroup type="panel" height="206" label="Nossa Equipe">
<cfgrid name="listingGrid" query="listarEquipe" rowheaders="false" onChange="#onchange#">
<cfgridcolumn name="nome" header="Nome Completo" width="260" />
<cfgridcolumn name="email" header="E-mail de Contato" width="120" />
<cfgridcolumn name="funcao" header="Função" width="120" />
</cfgrid>


</cfformgroup>

<cfformgroup type="page" label="Editar / Excluir Dados da Equipe">
<cfinput type="text"
name="nome"
label="Nome do Funcionário:"
bind="{listingGrid.selectedItem.nome}"
required="yes"
message="Entre com seu nome"
width="200">

<cfinput type="text"
name="email"
label="E-mail de Contato:"
bind="{listingGrid.selectedItem.email}"
required="yes"
validate="email"
message="Entre com um e-mail válido."
width="200">

<cfinput type="text"
name="funcao"
label="Função Executada:"
bind="{listingGrid.selectedItem.funcao}"
required="yes"
message="Entre com sua função"
width="200">

<cfinput type="text"
name="descricao"
label="Descrição:"
bind="{listingGrid.selectedItem.descricao}"
width="200">

<cfformgroup type="hbox">
<cfformgroup type="horizontal">
<cfinput type="radio" name="plano" value="Semanal" label="Semanal" />
<cfinput type="radio" name="plano" value="Mensal" label="Mensal" />
<cfinput type="radio" name="plano" value="Anual" label="Anual" />
</cfformgroup>
</cfformgroup>

<cfformitem type="spacer" height="10"></cfformitem>
<cfformgroup type="horizontal">
<cfinput type="submit" name="editBtn" value="Atualizar Dados" />
</cfformgroup>
</cfformgroup>

</cfformgroup>

</cfformgroup>
</cfform>

0

#13 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 05 January 2006 - 04:14 PM

QUOTE(Martha Christiane @ 5/1/2006 15:01:10)
Que Deus possa lhe dar em dobro tudo de bom que vc faz pelo próximo!
Muito obrigada!!!  tongue.gif
View Post


Sempre, nos dê saúde!

De nada.



0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)