Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/07/2014, 14:34
jeremiselxi
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 22
Crear Checkbox automaticos en Drupal

Buenas tardes. Tal como indica el titulo estoy necesitando crear checkbox dinámicos al momento de diseñar una busqueda en un formulario que estoy diseñando.

Este es el codigo que estoy utilizando

Código PHP:
<?php
 
/**
 * @file
 * Play with teh Form API
 */
 
/**
 * Implementacion hook_menu().
 */

 
 
function formexample_menu(){
 
$items['formexample'] = array(
 
'title' => 'Accede al formulario',
 
'page callback' => 'drupal_get_form',
 
'page arguments' => array('formexample_nameform'),
 
'access callback' => TRUE,
 
'type' => MENU_NORMAL_ITEM
 
 
);
 return 
$items;
 };
 

  
 
/**
 * Definir el formulario.
 */
function formexample_nameform(){

            
/**
            * Función diseñada para obtener todos los cursos y los nid de los cursos
            **/
            
function formexample_cursos() { 
              
$result db_query("SELECT title, nid FROM {node} where type = 'cursos'"); 

              foreach (
$result  as $result) { 
                
$i$result->nid
                
$nombre_cursos[$i] = $result->title

              } 
               return 
$nombre_cursos
            }; 
         
 
 
 
//Se define el fieldset(Contenedor) llamado Curso
 
 
$form['cursos'] = array(
 
'#title' => t('Elegie los estudiantes del Curso'),
 
'#type' => 'fieldset',
 
'#description' => t('Información sobre los Cursos'),
 
'#collapsible' => TRUE,
 
'#collapsed' => FALSE,
 );
 
 
//Se define el combobox en el cual contiene todos los nodos tipo Cursos así como tambien los nid de dichos nodos.
  
 
$form['cursos_options'] = array(
 
'#type' => 'value',
 
'#value' => formexample_cursos(),
 );
 
$form['cursos']['nombres_de_cursos'] = array(
 
'#title' => t('Busca el Curso'),
 
'#type' => 'select',
 
'#description' => t('Por favor selecciona un Curso'),
 
'#options' => $form['cursos_options']['#value'],
 );
 
 
 
 
// Campo utilizado para proporcionar la busqueda
 
  
$form['cursos']['obtener_id_nodo'] = array(
    
'#title' => '',  
    
'#type' => 'textfield',
    
'#default_value' => variable_get('obtener_id_nodo''0'),
    
'#access' => false,    
  );
 
 
 
$form['cursos']['submit'] = array(
 
'#type' => 'submit',
 
'#value' => t('Buscar Alumnos '),
 );
 
 function 
prueba () {
 
drupal_set_message(t('Prueba')) ;
 }
 
 
 
$form['Cambiar de cursos'] = array(
 
'#type' => 'submit',
 
'#value' => t('Cambiar de Cursos'),
 
'#submit' => array('prueba'),

 );
 
 
 

  
$form['SegundaSeccion'] = array(
 
'#title' => t('Resultados de los estudiantes'),
 
'#type' => 'fieldset',
 
'#description' => t('Resultado de Estudiantes'),
 
'#collapsible' => TRUE,
 
'#collapsed' => FALSE,
 );


 
//Campo utilizado para mostrar los resultados de la busqueda
 
$form['SegundaSeccion']['results'] = array(
    
'#type' => 'item',
    
'#title' => t('Resultados de su busqueda'),
    
'#markup' => busqueda_alumnos(), // Vea que usé markup en lugar de value.
  
);

  return 
$form;
}






/**
 * Validate the form.
 */
 
 
 
function formexample_nameform_validate(&$form, &$form_state){
 
$cursos_key $form_state['values']['nombres_de_cursos'];
 
$cursos $form_state['values']['cursos_options'][$cursos_key];
        if (
trim($form_state['values']['obtener_id_nodo']) == '') {                    
            
form_set_error('obtener_id_nodo''Error en la busqueda. Intentelo mas tarde.');
        }

 }
 
 
 
 
/**
 * Handle post_validate form submission.
 */


 
 
function formexample_nameform_submit(&$form, &$form_state){

 

 
$cursos_key $form_state['values']['nombres_de_cursos'];
 
$cursos $form_state['values']['cursos_options'][$cursos_key];


  
variable_set('obtener_id_nodo'$cursos_key);


 
 
drupal_set_message(t('El curso es %cursos y el id es %idcurso y %jeremi',array('%cursos' => $cursos'%idcurso' => $cursos_key'%jeremi' => variable_get('obtener_id_nodo'))));
 

 }

/**
*funcion que conecta base de datos externa y genera la listo o resultado
*/



function busqueda_alumnos()
{
 
$output='';

db_set_active('sinergias');

//se obtiene el id del nodo y se pasa a la variable $nid

$nidvariable_get('obtener_id_nodo');

$sql "SELECT users.uid uid, users.name name, field_data_field_profile_mi_curso_actual_es.field_profile_mi_curso_actual_es_nid nid, node.title title
FROM node INNER JOIN (field_data_field_profile_mi_curso_actual_es INNER JOIN (profile INNER JOIN users ON profile.uid = users.uid) ON 
field_data_field_profile_mi_curso_actual_es.entity_id = profile.pid) ON 
node.nid = field_data_field_profile_mi_curso_actual_es.field_profile_mi_curso_actual_es_nid where nid = '$nid'"
;

$result db_query($sql);

db_set_active('default');

$header = array('UID''NAME','NID''TITLE' );
$data = array();

foreach (
$result as $row)
{
$data[] = array($row->uid$row->name$row->nid$row->title);
}
$output theme('table', array('header' => $header'rows' => $data ));

return 
$output;

}

lo que deseo es que en la parte del código donde muestro los resultados

Código PHP:

$header 
= array('UID''NAME','NID''TITLE' );
$data = array();

foreach (
$result as $row)
{
$data[] = array($row->uid$row->name$row->nid$row->title);
}
$output theme('table', array('header' => $header'rows' => $data ));

return 
$output
en ves de que de que muestre el campo $row->uid me muestre un checkbox pero que en el valor tenga el uid del usuario. Espero haberme explicado bien.

Saludos