Consulta: ocultar id en url

1,100 views
Skip to first unread message

mailitos

unread,
Jun 17, 2012, 7:28:40 PM6/17/12
to codeignit...@googlegroups.com
Buenas, comento lo que me esta sucediendo , necesito que no se muestre dentro de la url el id del registro que estoy editando , que la direccion en la barra del navegador sea del tipo http://miweb.com/usuario por ejemplo, 
hasta el momento venia haciendo los links de forma sencilla con jquery y actualizando el div con la respuesta del controlados, pero en este caso en el crud simple que estoy haciendo para editar un registro no me funciona la funcion. me lleva a a la url clasica controlador/metodo/id..

yo capturo el id de una tabla que formo en una vista anterior de esta forma:

  <td id="editar" class="center"><?php echo anchor('admin/view_register/'.$carreradata->id_carr,img($img_edit));?></td>

en este controlador obtengo el registro y lo mando a un form listo para ser editado.
------------------------------------------------------------------------------------------------------------------
la funcion que normalmente utilizo de jquery para capturar los enlaces es :

$('#editar').click(function() {
$('#tablas').html('<img src="images/general/loading.gif"/>Cargando...');
$('#tablas').load('alumnos/listar_materias', function() {
$('#example').dataTable();
});
             });
------------------------------------------------------------------------------------------------------------------------------------------------
por supuesto que esta funcion no funciona, que solucion podria implementar ya sea en jquery o ajax para que la url se mantenga limpia y no se muestre el controlador y el id del registro....??????

desde ya gracias por su ayuda...


Roberto Moreno P.

unread,
Jun 17, 2012, 7:57:13 PM6/17/12
to codeignit...@googlegroups.com
Pregunta,

Solo utilizaras 1 controlador?

Confirmame eso leonardo para responder.

Saludos
> --
> ---
> De-suscripción: codeigniter-spa...@googlegroups.com
> Mas Información: http://groups.google.com/group/codeigniter-spanish?hl=es
> Antes de responder revisa: http://es.wikipedia.org/wiki/Netiquette
> Regístrate en el Censo CI: http://bit.ly/miembroscodeigniteres



--
Roberto Andrés Moreno Pérez

mailitos

unread,
Jun 17, 2012, 9:08:01 PM6/17/12
to codeignit...@googlegroups.com
No, tengo muchos controladores al igual que vistas y modelos, si a eso te referis. en este caso en particular, es el controlador del admin, desde el cual se hacen los crud.
Saludos.
> De-suscripción: codeigniter-spanish-unsub...@googlegroups.com

Roberto Moreno P.

unread,
Jun 17, 2012, 11:30:20 PM6/17/12
to codeignit...@googlegroups.com
Estimado,

Entonces recomiendo crear una regla con una keywords ejemplo

http://www.ejemplo.com/user/mailitos

Ya que mailitos es un nombre de usuario y por lo tanto unico hacer la
consulta por ahi, en vez del id

Saludos
>> > De-suscripción: codeigniter-spa...@googlegroups.com
>> > Mas Información:
>> > http://groups.google.com/group/codeigniter-spanish?hl=es
>> > Antes de responder revisa: http://es.wikipedia.org/wiki/Netiquette
>> > Regístrate en el Censo CI: http://bit.ly/miembroscodeigniteres
>>
>>
>>
>> --
>> Roberto Andrés Moreno Pérez
>
> --
> ---
> De-suscripción: codeigniter-spa...@googlegroups.com

trazos

unread,
Jun 18, 2012, 12:41:28 AM6/18/12
to codeignit...@googlegroups.com
te doy una idea, no se si sera lo mas pratico, pero por que no mandas a un controlador, creas una sesion con el id y redireccionas a tu funcion para editar, luego destruyes la sesion....

ojala te sirva, saludos.

mailitos

unread,
Jun 18, 2012, 7:47:34 PM6/18/12
to codeignit...@googlegroups.com
Gracias por las ideas, pero no se si es lo que estoy necesitando, en realidad no necesito realizar consultas, si no editar registros de X tabla que los muestro mediante el plugin datatable...desde ahi necesito hacer click en un registro y que me lleve a un formulario de editar, y luego cuando termine vuelva a la misma tabla con el registro cambiado. no es que no lo tenga ya funcionando,  mi problema no es hacer funcionar ese proceso, si no hacer que no se salga de la pagina en la que estoy , que no me lleve a otra url, que todo suceda dentro de la misma pantalla, por eso pedia ayuda con algun ajax o jquery que me ayudara a realizar esto....por que? de la forma que tengo armado , yo cargo los css , js, head,footer y demas una sola vez, y no queria en cada controlador enviar todo de nuevo a la vista para que no se note que no estoy en la misma pagina....ademas del tema de que no me gusta que se vea el id en la url y demas....sigo buscando , si se les ocurre algo, estoy abierto a probar de todo (bue...de todo de todo no eh... ;)     ) en cuanto tenga una solucion la publico por si a alguien mas le es de ayuda, nuevamente gracias por los consejoss.....

Roberto Moreno P.

unread,
Jun 18, 2012, 9:36:53 PM6/18/12
to codeignit...@googlegroups.com

mailitos

unread,
Jun 21, 2012, 5:34:36 PM6/21/12
to codeignit...@googlegroups.com
como prometi aca esta la solucion que encontre para resolver este problema, no se si sera la adecuada, pero en mi caso cumple con las especificaciones....
Voy a tratar de ser lo mas claro, cualquier duda me avisan..

----------------------------------------------------------------------------------
Vista en la que muestro una tabla con resultados de la bd
----------------------------------------------------------------------------------
//algo de codigo...//
//creo la tabla//
   <?php if(count($carrera_list)>0){
    foreach ($carrera_list as $carreradata){ ?>
    <tr>
    <td style="display:none"><?php echo $carreradata->id_carr; ?></td>
    <td><?php echo $carreradata->desc_carr; ?></td>
    <td><?php echo $carreradata->fecha_alta; ?></td>
    <td><?php if (($carreradata->estado) != 0) echo 'Activa';else{echo 'No Activa';}?></td>
    <?php
    /* helper de html para los tags de las imagenes.*/
    $this->load->helper('html');
   
    $img_edit = array(
          'src' => '/images/front_login/crud/edit.png',
         
          'width' => '16',
          'height' => '16',
          );

    $img_add = array(
          'src' => '/images/front_login/crud/add.png',
          'alt' => 'agregar',
          'class' => 'agregar',
          'width' => '16',
          'height' => '16',
          );
  
    ?>
    <td class="center"><a href="#" class="editar" id="<?php echo $carreradata->id_carr ?>"><?php echo img($img_edit)?></a></td> --->este crea el link de cada registro que quiero editar
----> le asigno al atributo id de la fila el id del registro que traigo de la bd

//mas codigo.....//

--------------------------------------------------------------------------------------------------

con javascript capturo el enlace y paso los parametros al hacer click en el enlace

<script language="javascript"> //captura el id del registro que se asigna a la prop. 'id' del tag 'a'
 $('.editar').click(function(event){
  event.preventDefault();
  id = $(this).attr("id");
    $.post("admin/view_register/"+id,function(data){
     $("#tablas").html(data);
    }); 
  });
</script>

--------------------------------------------------------------------------------------------------

Mando al controlador admin/view_register/
--------------------------------------------------------------------------------------------------

public function view_register($id) {
       $session_id = $this -> session -> userdata('logged_admin');
     if($session_id){
        
       $datac['register'] = $this->crud_m->get_by_id($id,'id_carr','carrera')->row();
       $data['id_carr']= $datac['register']->id_carr;
       $data['desc_carr']= $datac['register']->desc_carr;
       $data['fecha_alta']= $datac['register']->fecha_alta;
       $data['estado']= $datac['register']->estado;
     
       $this->load->view('crud/v_updform_carr',$data); 
     }else{
        redirect('login');
     }
   }

-------------------------------------------------------------------------------------------------------------------------
el model
-------------------------------------------------
 function get_by_id($id,$field,$tabla){     
    $consulta=$this->db->where($field,$id);  
    return $this->db->get($tabla);             
   }

------------------------------------------------------------------------------------------------------------------------
y luego no queda mas que mostrar los datos en la vista  v_updform_carr, listos para ser editados.
--------------------------------------------------------------------------------------------------------------------------------------------------

<?php
$atrForm =array(
         'class' =>'edit',
         'id'    => 'edit',
         'name'    => 'edit',
        );

echo form_open('admin/upd_carrera', $atrForm);
echo form_fieldset('Editar Carrera');

echo form_label('Id');
$atrInputId=array (
         'name' =>'id_carr',
         'value'=> $id_carr,
         );
echo form_input($atrInputId);

echo form_label('Fecha de Alta:');
        $atrInputdate=array (
        'name' =>'fecha_alta',
        'id'   =>'fecha_alta',
        'value'=>$fecha_alta,    
        );
echo form_input($atrInputdate);

echo form_label('Descripcion');
    $atrInputDesc=array (
         'name' =>'desc_carr',
         'value'=> $desc_carr,
         );
echo form_input($atrInputDesc);

echo form_label('Estado(Activa?)');
if ($estado != 0){
    $atrCheckestado = array(
        'name'        => 'estado',
        'id'          => 'estado',
        'value'       => $estado,
        'checked'     => TRUE,
        );
    }else{
        $atrCheckestado = array(
        'name'        => 'estado',
        'id'          => 'estado',
        'value'       => $estado,
        'checked'     => FALSE,
        );
    }
echo form_checkbox($atrCheckestado);
               
$atrSubmEdit=array (
        'name' =>'submit',
        'class'   =>'btn',
        'value'=>'Editar'
        );
echo form_submit($atrSubmEdit);   

echo form_fieldset_close();
echo form_close();
?>



-----------------------------------------


Reply all
Reply to author
Forward
0 new messages