Foros del Web » Programando para Internet » PHP »

Problema con select list/listbox

Estas en el tema de Problema con select list/listbox en el foro de PHP en Foros del Web. Buenas, tratare de ser lo mas corto y preciso posible tengo un CRUD de usuarios sus espacios son id, nombre, apellidos, puesto, username y password ...
  #1 (permalink)  
Antiguo 23/01/2014, 22:29
 
Fecha de Ingreso: enero-2014
Mensajes: 33
Antigüedad: 10 años, 3 meses
Puntos: 0
Problema con select list/listbox

Buenas, tratare de ser lo mas corto y preciso posible tengo un CRUD de usuarios sus espacios son id, nombre, apellidos, puesto, username y password sus funciones pricipales funcionan correctamente
pero el problema radica que en el form donde agrego eso tengo 2 listbox uno es para mostrar todas las categorias a las que pueden tener acceso los usuarios y el otro es para mostrar a que categorias tienen acceso actualmente el primero funciona me muestra todas las categorias pero el segundo es en donde no puedo llamar a imprimir las categorias que tienen acceso cada usuarios me refiero a que si selecciono dentro del gridview un usuario y aplasto el boton de actualizar que me salgan las categorias ligadas a ese usuario

Estos son los campos de mi tabla usuarios

id bigint primary key, nombre varchar, apellidos, varchar, puesto bigint(foreign key a otra tabla), username varchar, password varchar

mi tabla donde hago la relacion usuario-categoria es esta
id_permisos bigint primary key, id_usuarios bigint(foreign key a la tabla usuarios), id_submenu bigint(foreign key a la tabla submenu, los submenus son las categorias)

tabla submenu
sub_id bigint,nombre varchar, url varchar, descripcion varchar

y este es mi codigo de mi formulario
Código HTML:
<form action="get_privilegio.php" method="POST">
	<table id="dg" title="Usuarios" class="easyui-datagrid" style="width:1000px;height:350px"
			url="get_users.php"
			toolbar="#toolbar" pagination="true"
			rownumbers="true" fitColumns="true" singleSelect="true" >
		<thead>
			<tr>
				<th field="id" name="id" id="id" width="50">Id</th>
				<th field="nombre" width="50">Nombre</th>
				<th field="apellidos" width="50">Apellidos</th>
				<th field="puesto" width="50">Puesto</th>
				<th field="username" width="50">Usuario</th>
				
			</tr>
		</thead>
	</table>
	
	<div id="toolbar">
		<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">Nuevo usuarior</a>
		<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser(); editar();">Actualizar</a> <-- Aqui mando a llamar a 2 funciones
		<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removeUser()">Eliminar</a>
	</div>
	</form>
	<div id="dlg" class="easyui-dialog" style="width:700px;height:500px;padding:0px 0px"
			closed="true" buttons="#dlg-buttons">
		<div class="ftitle">Informacion del usuario</div>
		<form id="fm" method="post" novalidate>
		<div class="fitem">
				<label>id:</label>
				<input name="id" class="easyui-validatebox" required="true" disabled>
			</div>
			<div class="fitem">
				<label>Nombre:</label>
				<input name="nombre" class="easyui-validatebox" required="true">
			</div>
			<div class="fitem">
				<label>Apellidos:</label>
				<input name="apellidos" class="easyui-validatebox" required="true">
			</div>
			<div class="fitem">
				<label>Puesto:</label>
				<input name="puesto" class="easyui-validatebox" required="true">
				
			</div>
			<div class="fitem">
				<label>Usuario:</label>
				<input name="username" class="easyui-validatebox" required="true">
			</div>
			<div class="fitem">
				<label>Password:</label>
				<input name="password" class="easyui-validatebox" required="true">
			</div>
			
		
			<div class="fitem">
				<label>Permisos:</label>
				
			</div>
		
			<div class="fitem">
            <select  name="origen[]" id="origen" multiple="multiple" size="10" style="width:250px; float:left;">
                
                <?php
					include_once "lista_privilegios.php"
				?>
				</select>
				</div>
				
				<div  class="fitem">
              
            <select name="destino[]" id="destino" multiple="multiple" size="10" style="width:250px; float:right;">
			 <?php
					include_once "get_privilegio.php"
				?>
			</select>
			</form>
        </div>
      
	   
	   
	   <div align="center">
            <input  type="button" class="pasar izq" value="Pasar »"><input type="button" class="quitar der" value="« Quitar"><br />
            
			<input type="button" class="quitartodos der" value="Borrar Privilegio" onClick="BorrarPrivilegio()">
			<input type="button" id="guardar" class="quitartodos der" value="Guardar Privilegios" onClick="">
        </div>
			
		
			
			
		
	</div>
	<div id="dlg-buttons">
		<a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">Save</a>
		<a href="#"  class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close'); borrar();">Cancel</a>
	</div>
	</div> 
Este es mi archivo js que me sirve para actualizar,agregar o eliminar

Código Javascript:
Ver original
  1. var url;
  2.         function newUser(){
  3.             $('#dlg').dialog('open').dialog('setTitle','Nuevo usuario');
  4.             $('#fm').form('clear');
  5.            
  6.             url = 'save_user.php';
  7.         }
  8.         function editUser(){
  9.             var row = $('#dg').datagrid('getSelected');
  10.             if (row){
  11.                 $('#dlg').dialog('open').dialog('setTitle','Editar Usuario');
  12.                 $('#fm').form('load',row);
  13.                 url = 'update_user.php?id='+row.id;
  14.             }
  15.         }
  16.        
  17.         function editar(){
  18. id del gridview-->  var row = $('#dg').datagrid('getSelected');
  19.             if (row){
  20. id del form-->      $('#dlg').dialog('open').dialog('setTitle','Editar Usuario');
  21. id de mi list-->    $('#destino').select('load',row); <--no se si un list se declara asi, tal vez ahi este el error
  22.                 url = 'get_privilegio.php?id='+row.id;
  23.             }
  24.         }
  25.         function saveUser(){
  26.             $('#fm').form('submit',{
  27.                 url: url,
  28.                 onSubmit: function(){
  29.                     return $(this).form('validate');
  30.                 },
  31.                 success: function(result){
  32.                     var result = eval('('+result+')');
  33.                     if (result.success){
  34.                         $('#dlg').dialog('close');      // close the dialog
  35.                         $('#dg').datagrid('reload');    // reload the user data
  36.                     } else {
  37.                         $.messager.show({
  38.                             title: 'Error',
  39.                             msg: result.msg
  40.                         });
  41.                     }
  42.                 }
  43.             });
  44.         }
  45.         function removeUser(){
  46.             var row = $('#dg').datagrid('getSelected');
  47.             if (row){
  48.                 $.messager.confirm('Confirmar','Esta seguro de querer borrar este usuario?',function(r){
  49.                     if (r){
  50.                         $.post('remove_user.php',{id:row.id},function(result){
  51.                             if (result.success){
  52.                                 $('#dg').datagrid('reload');    // reload the user data
  53.                             } else {
  54.                                 $.messager.show({   // show error message
  55.                                     title: 'Error',
  56.                                     msg: result.msg
  57.                                 });
  58.                             }
  59.                         },'json');
  60.                     }
  61.                 });
  62.             }
  63.         }

y este es el arciho php donde quiero que haga el post get_privilegio.php

Código PHP:
<?php
    
    
include_once "../Class/conexion.php";
    
conexion();
$id intval($_REQUEST['id']);
    
$resultados mysql_query("select id_permisos,id_submenu from permisos where id_usuario=$id");
    

        while(
$row=mysql_fetch_assoc($resultados))
            {
            
                echo 
'<option value="id_permisos">',$row["id_permisos"],'  '$row["id_submenu"],'  ','</option> ';

            }
?>
En conclucion quiero realizar la busqueda por medio del id del usuario seleccionado,
la sentencia si sirve ya que si cambio la varia $id por un id especifico si me muestra las opciones pero cuando la dejo asi no me muestra nada, usualmente no me gusta poner tanto codigo pero este es el codigo indespensable para que me puedan ayudar, enserio si puden ayudarme se los agradeceria
  #2 (permalink)  
Antiguo 23/01/2014, 23:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con select list/listbox

Si no puedes realizar la búsqueda filtrando con $id, probablemente se trate porque no esté llegando el valor de $_REQUEST['id']. Verifica eso, por ahí veo una fila de tabla con el mismo nombre que el campo de texto del que debería recibirse el dato ingresado.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 24/01/2014, 09:55
 
Fecha de Ingreso: enero-2014
Mensajes: 33
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Problema con select list/listbox

Cita:
Iniciado por Alexis88 Ver Mensaje
Si no puedes realizar la búsqueda filtrando con $id, probablemente se trate porque no esté llegando el valor de $_REQUEST['id']. Verifica eso, por ahí veo una fila de tabla con el mismo nombre que el campo de texto del que debería recibirse el dato ingresado.

Saludos
Ese es el problema se que no le llega ningun valor ya que no hace la busqueda, ya estube intentando varias cosas y nada, ya ni se que hacer
  #4 (permalink)  
Antiguo 24/01/2014, 10:16
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con select list/listbox

Verifica que el nombre del campo del que debes recibir el valor para $id, no se repita en otro elemento, en otras palabras, ese y solamente ese campo debe llamarse "id".
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 24/01/2014, 11:50
 
Fecha de Ingreso: enero-2014
Mensajes: 33
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Problema con select list/listbox

Cita:
Iniciado por Alexis88 Ver Mensaje
Verifica que el nombre del campo del que debes recibir el valor para $id, no se repita en otro elemento, en otras palabras, ese y solamente ese campo debe llamarse "id".
Buenas, ya logre que me muestre lo que necesitaba pero ahora el problema es que necesito aplastar un boton para realizar esa busqueda pero cuando aplasto ese boton se cierra el form, sabras como impedir que eso suceda?
Código HTML:
Ver original
  1. <div align="center">
  2.    
  3.     <table id="dg" title="Usuarios" class="easyui-datagrid" style="width:1000px;height:350px"
  4.             url="get_users.php"
  5.             toolbar="#toolbar" pagination="true"
  6.             rownumbers="true" fitColumns="true" singleSelect="true" >
  7.         <thead>
  8.             <tr>
  9.                
  10.                 <th field="nombre" width="50">Nombre</th>
  11.                 <th field="apellidos" width="50">Apellidos</th>
  12.                 <th field="puesto" width="50">Puesto</th>
  13.                 <th field="username" width="50">Usuario</th>
  14.                
  15.             </tr>
  16.         </thead>
  17.     </table>
  18.    
  19.     <div id="toolbar">
  20.         <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">Nuevo usuarior</a>
  21.         <a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser();">Actualizar</a>
  22.         <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removeUser()">Eliminar</a>
  23.     </div>
  24.    
  25.     <div id="dlg" class="easyui-dialog" style="width:700px;height:500px;padding:0px 0px"
  26.             closed="true" buttons="#dlg-buttons">
  27.         <div class="ftitle">Informacion del usuario</div>
  28.         <form id="fm" method="post" action="get_privilegio.php"  novalidate >
  29.         <div class="fitem">
  30.                
  31.                 <input type="hidden" id="id" name="id" value="id" class="easyui-validatebox" required="true" >
  32.             </div>
  33.             <div class="fitem">
  34.                 <label>Nombre:</label>
  35.                 <input name="nombre" class="easyui-validatebox" required="true">
  36.             </div>
  37.             <div class="fitem">
  38.                 <label>Apellidos:</label>
  39.                 <input name="apellidos" class="easyui-validatebox" required="true">
  40.             </div>
  41.             <div class="fitem">
  42.                 <label>Puesto:</label>
  43.                 <input name="puesto" class="easyui-validatebox" required="true">
  44.                
  45.             </div>
  46.             <div class="fitem">
  47.                 <label>Usuario:</label>
  48.                 <input name="username" class="easyui-validatebox" required="true">
  49.             </div>
  50.             <div class="fitem">
  51.                 <label>Password:</label>
  52.                 <input name="password" class="easyui-validatebox" required="true">
  53.             </div>
  54.            
  55.        
  56.             <div class="fitem">
  57.                 <label>Permisos:</label>
  58.                
  59.             </div>
  60.        
  61.             <div class="fitem">
  62.             <select  name="origen[]" id="origen" multiple="multiple" size="10" style="width:250px; float:left;">
  63.                
  64.                 <?php
  65.                     include_once "lista_privilegios.php"
  66.                 ?>
  67.                 </select>
  68.                 </div>
  69.                
  70.                 <div  class="fitem">
  71.              
  72.             <select name="destino[]" id="destino" multiple="multiple" size="10" style="width:250px; float:right;">
  73.              <?php
  74.                     include_once "get_privilegio.php"
  75.                 ?>
  76.             </select>
  77.            
  78.             <div align="center">
  79.             <input  type="button" class="pasar izq" value="Pasar »"><input type="button" class="quitar der" value="« Quitar"><br />
  80.            
  81.             <input type="button" class="quitartodos der" value="Borrar Privilegio" onClick="BorrarPrivilegio()">
  82.             <input type="submit" value="Guardar Privilegios">
  83.         </div>
  84.             </form>
  85.         </div>
  86.      
  87.        
  88.        
  89.        
  90.            
  91.        
  92.             <!--<div class="fitem">
  93.                 <label>Email:</label>
  94.                 <input name="email" class="easyui-validatebox" validType="email">
  95.             </div>-->
  96.            
  97.        
  98.     </div>
  99.     <div id="dlg-buttons">
  100.         <a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">Save</a>
  101.         <a href="#"  class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close'); borrar();">Cancel</a>
  102.     </div>
  103.     </div>

y el archivo php sigue siendo el mismo

Última edición por MenS1ayer; 24/01/2014 a las 12:03 Razón: resolvi el antiguo problema

Etiquetas: formulario, mysql, select, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:24.