Ir para conteúdo

POWERED BY:

Arquivado

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

taboada1984

Nomear Função com utilizando variável

Recommended Posts

Bom Dia !

 

Preciso criar um função em JavScript que irá se repetir várias vezes, porém não consigo nomear a função utilizando uma variável. Segue exemplo:

 

 

 

 

var i ='0';

function buscar_cliconv0(){ /*nesta linha não sei como chamar este zero com variável*/
var nm_convenio = $('#conv'+i).val();
if(nm_convenio){
var url = 'xml/clientesconv_ajax.php?nm_convenio='+nm_convenio;
$.get(url, function(dataReturn) {
$('#load_clientesconv'+i).html(dataReturn);
});
}
}

 

Criei a varável i, para testar se a fórmula funciona, e até o exemplo acima tudo funciona normalmente, porém preciso incluir essa variável no próprio nome da função. Tentei da seguinte forma:

function buscar_cliconv+i(){
porém isso não funciona, alguém pode me ajudar?

 

Att.

 

Rafael Taboada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não faz sentido cara.. pq vc acha que precisa criar uma função n vezes ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que você diz minha lógica deve estar errada, mas o meu problema é o seguinte:

//A idéia é buscar os clientes de um convênio a partir do convênio selecionado
?>

<script>
/*aqui eu busco uma outra página que irá me retornar um select com os clientes conveniados*/
var i ='0';

function buscar_cliconv0(){ /*nesta linha não sei como chamar este zero com variável*/
var nm_convenio = $('#conv'+i).val();
if(nm_convenio){
var url = 'xml/clientesconv_ajax.php?nm_convenio='+nm_convenio;
$.get(url, function(dataReturn) {
$('#load_clientesconv'+i).html(dataReturn);
});
}
}

</script>

<?php
//aqui eu busco os convênios e sua quantidade de linhas para colocar no select
include('conexao.php');
$sql7 = "select * from tb_convenio where id_empresa='$id_empresa' order by nm_convenio";
$sql8 = "select ds_nome_clienteconv from tb_clienteconv where id_empresa='$id_empresa' order by ds_nome_clienteconv";

$resultado_nm_conv = mysql_query($sql7,$conexao)
or die(mysql_error($conexao));
$resultado_nm_clienteconv = mysql_query($sql8,$conexao)
or die(mysql_error($conexao));

$linhas7 = mysql_num_rows($resultado_nm_conv);
$linhas8 = mysql_num_rows($resultado_nm_clienteconv);

//aqui eu falo a quantidade de selects que irão aparecer
//de acordo com a quantidade de linhas selecionadas anteriormente
for( $x6=0 ; $x6 < $conv_desp_rec ; $x6++ )
{
//aqui eu crio o select dos convênios existentes no cadastro
echo
"<div class='campo_conv'>
<label for='conv$x6'>Convênio:</label>
<select name='conv$x6' id='conv$x6' onchange='buscar_cliconv$x6()' onBlur='buscar_cliconv$x6()' onKeyup='buscar_cliconv$x6()' >";

for( $x7=0 ; $x7 < $linhas7 ; $x7++ )
{
$ds_nome_conv = mysql_result($resultado_nm_conv,$x7,'nm_convenio');
$nr_cod_conv = mysql_result($resultado_nm_conv,$x7,'cd_convenio');

echo "<option value='$nr_cod_conv'>$ds_nome_conv</option>";

}
//aqui eu crio um select vazio, que será preenchido com o nome dos clientes
//a partir do código em jquery lá de cima, porém atualmente eu só consigo
//preencher o primeiro select, por isso tive a ideia, de colocar o nome da
//função no for.
echo
"</select>
</div>

<div id='load_clientesconv$x6' class='campo_cliconv'>
<label for='cliconv$x6'>Cliente Convênio:</label>
<select name='cliconv$x6' id='cliconv$x6'>
<option>--</option>
</select>
</div>

<div class='campo_valor_conv'>
<input type='text' class='input' name='valor_conv$x6' onkeypress='mascara(this,semponto)'
onblur='somaconv();faltasobraautomatica()' value ='0,00' id='valor_conv$x6' />
</div>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então.. em vez de criar a função n vezes, vc utiliza ela n vezes alterando o parâmetro que ela recebe:

 

function buscar_cliconv(i){
entendeu ?

Uma função declarada uma única vez, e utilizada várias vezes, mudando o parâmetro.

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.