El problema que tengo en que necesito llenar varios textbox a partir del valor de un option select. Para esto estoy usando JQuery y Ajax. He visto varios manuales de cómo hacerlo, he avanzado en una parte pero el problema que tengo es que no sé cómo regresar los valores para ubicarlos en los textbox correspondientes.
Desde este script tengo el option value (lo que no sé es cómo colocar los valores en las cajas nomCategoria y numBeneficiarios).
Using perl Syntax Highlighting
- sub datosLaborales {
- my (@categoria,%labCategorias);
- push @gerencias,"";
- ($rs,$fetch)
- = record(
- db => "consulta_ategorias",
- tabla => "categorias",
- condicion => "order by 2",
- campos => "id,codigo",
- visible => "no"
- );
- while($fetch->()) {
- push @categorias,$$rs{id};
- $labCategorias{$$rs{id}} = $$rs{codigo};
- }
- my $tblCategorias
- = new HTML::Table(
- -rows => 2,
- -cols => 2,
- -border => 0,
- -bgcolor => 0,
- -width => "100%",
- -spacing => 0,
- -padding => 3,
- -class => "tabla_principal2"
- );
- $tblCategorias->setCell(2,1,
- "<span class=negro>Seleccione la Categoria</span> <br/>"
- . popup_menu(
- -name => 'categoria',
- -id => 'categoria',
- -value => [(@categorias)],
- -labels => {%labCategorias},
- -default => "",
- -onKeyDown => 'javascript: if (event.keyCode==13 || event.keyCode==9) handleEnter(this,event);',
- -class => 'estilopopup'
- )
- );
- $tblCategorias->setCell(2,2,
- "<span class=negro>Nombre de la Categoria</span> <br>"
- . textfield(
- -id => 'nomCategoria',
- -name => 'nomCategoria',
- -value => "",
- -class => 'bloqueado2',
- -size => 40,
- -maxlength => 40,
- -onpaste => "return false",
- readOnly => "true"
- )
- );
- $tblCategorias->setCell(3,1,
- "<span class=negro>Número de Beneficiarios</span> <br>"
- . textfield(
- -id => 'numBeneficiarios',
- -name => 'numBeneficiarios',
- -value => "",
- -class => 'bloqueado2',
- -size => 25,
- -maxlength => 10,
- -onpaste => "return false",
- readOnly => "true"
- )
- );
- $tblCategorias->setColAlign(1,"LEFT");
- $tblCategorias->setColAlign(2,"LEFT");
- do "menu.cgi";
- my $diseno = &obten_menuPrincipal($tblCategorias);
- print $session->header;
- print start_html(
- -title => 'CATEGORIAS',
- -script => [
- #{ -language => 'JavaScript', -src =>'../../mnj_categoria/js/jquery-1.11.2.min.js'},
- { -language => 'JavaScript', -src => 'http://code.jquery.com/jquery-1.11.3.min.js'},
- { -language => 'JavaScript', -src => '../../mnj_categoria/js/jquery-ui-1.10.4.custom.min.js'},
- { -language => 'JavaScript', -src => '../../mnj_categoria/js/valCategoria.js'}
- ],
- -style => [
- { -src => $server . '/mnj_categoria/css/principal.css'},
- ],
- );
- print start_multipart_form(
- -action => $script_name,
- -name => 'form',
- -id => 'form'
- );
- print $diseno;
- print end_form();
- print end_html();
- exit;
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Este es el JavaScript donde estoy efectuando la llamada del Ajax:
Using javascript Syntax Highlighting
- $(document).ready(function (){
- $("#categoria").change( function(){
- var id= $("#categoria").val();
- var url ="obtenValCategorias.cgi";
- $.ajax({
- type:'POST',
- url:url,
- data:'id='+id,
- success:function(data){
- //es en esta parte como poner los valores en sus respectivas cajas
- $("#nomCategoria").html(data);
- $("#numBeneficiarios").html(data);
- }
- });
- return false;
- });
- });
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Este es el código de obtenValCategorias.cgi
Using perl Syntax Highlighting
- #!/usr/bin/perl -w
- BEGIN{ @INC=(@INC,"/var/www/cgi-bin/comun"); }
- use mnj_plantilla;
- use strict;
- &buscaCategoria();
- exit;
- sub buscaCategoria {
- my($nombre,$beneficiarios);
- ($rs,$fetch)
- = record(
- db => "consulta_ategorias",
- tabla => "categorias",
- condicion => "WHERE id=$FORM{id}",
- campos => "nombre,beneficiarios",
- visible => "no"
- );
- while($fetch->()) {
- $nombre = $$rs{nombre};
- $beneficiarios = $$rs{beneficiarios};
- }
- print $session->header;
- print start_html(
- -title => 'CATEGORIAS',
- -script => [
- ],
- -style => [
- ],
- );
- # el nombre y el beneficiario sí los obtengo,
- # pero no sé cómo regresar los valores para que estos se procesen
- # y caigan en sus respectivas cajas de texto
- print $nombre,$beneficiarios;
- }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Espero y puedan ayudarme y de antemano muchas gracias.