Como crear un primer formulario.
Posted Julio 27th, 2008 by oskar
Lo primero gracias a pcambra y a develCuy por su ayuda con mi primer formulario..
<?php
/**
* Formulario que permite guardar las partidas jugadas
* Form to save the game.
*/
function alta_partida(){
$form['alta_partida'] = array (
'#type' => 'fieldset',
'#title' => t('alta de partidas'),
'#weight' => -6,
);
// Nombre del jugador a
$form['alta_partida']['jugador_a'] = array(
'#type' => 'value',
'#value' => $user->uid,
);
// Nombre del ejercito del jugador a
$form['alta_partida']['jugador_a_ejercito'] = array(
'#type' => 'value',
'#value' => $user->profile_ejercito,
);
// fieldset para agrupar los datos del jugador b
$form['contrincante'] = array(
'#type' => 'fieldset',
'#title' => t('Datos de tu contrincante'),
'#weight' => -5,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$ejercito_b['0'] = t("Selecciona un ejerccio");
$ejercito_b['1'] = "Marines";
$ejercito_b['2'] = "Orkos";
$ejercito_b['3'] = "Eldars";
// Ejercito del jugador b
$form['contrincante']['jugador_b_ejercito'] = array (
'#type' => 'select',
'#title' => t('selecciona el ejercito de tu contrincante:'),
'#options' => $ejercito_b,
'#default_value' => $ejercito_b['0'],
'#weight' => -15,
);
// Nombre del jugador b
$form['contrincante']['jugador_b_'] = array (
'#type' => 'select',
'#title' => t('¿Como se llamaba tu contrincante?:'),
'#options' => array(
'0' => t('General Lee'),
'1' => t('Mc Arthur'),
'2' => t('Almirante Nelson'),
'3' => t('Godoy'),
),
'#weight' => -14,
);
//fieldset de la campaña
$form['campanya'] = array(
'#type' => 'fieldset',
'#title' => t('Datos de la campaña'),
'#weight' => -4,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$nombre_campanya = "Asalto al imperio frances";
//nombre de la campanya.
$form['campanya']['nombre_campanya'] = array (
'#type' => 'item',
'#title' => t('Nombre de la campaña:'),
'#value' => $nombre_campanya,
'#weight' => -4,
);
//lugar de la partida
$form['campanya']['lugar'] = array(
'#type' => 'select',
'#title' => t('Donde se ha jugado la partida:'),
'#options' => array(
'0' => t('Paris centro'),
'1' => t('Sudeste de paris'),
'2' => t('En los suburbios'),
'3' => t('En el almacen del puerto'),
),
'#weight' => -3,
);
//fieldset del tipo de partida
$form['tipo_partida'] = array(
'#type' => 'fieldset',
'#title' => t('Tipo de partida que se ha jugado'),
'#weight' => 2,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
//tipo de batalla, hace referencia a la cantidad de puntos que se juegan en la partida.
$form['tipo_partida']['tipo_batalla'] = array(
'#type' => 'select',
'#title' => t('Tamaño de la partida:'),
'#options' => array(
'0' => t('escaramuzas'),
'1' => t('patrullas'),
'2' => t('normal'),
'3' => t('grande'),
'4' => t('enorme'),
),
'#weight' => -5,
);
//tipo de batalla, hace referencia al tipo de miniaturas, tamaño, que se utiliza en la partida..
$form['tipo_partida']['tipo_ejercito'] = array(
'#type' => 'select',
'#title' => t('Tipo de miniaturas:'),
'#options' => array(
'0' => t('06mm a 15mm'),
'1' => t('16 mm a 25mm'),
'2' => t('26 mm a 35mm'),
'3' => t('36mm a 55mm'),
'4' => t('barcos'),
'5' => t('aviones'),
'6' => t('naves espaciales'),
),
'#weight' => -4,
);
//fieldset del tipo de misión que se ha jugado en la partida
$form['tipo_mision'] = array(
'#type' => 'fieldset',
'#title' => t('Tipo de misión'),
'#weight' => 1,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
//que tipo de misión se ha jugado, hay 3 opciones, normales, especiales, eventos
$form['tipo_mision']['mision'] = array(
'#type' => 'select',
'#title' => t('Que tipo de misión se ha jugado:'),
'#options' => array(
'0' => t('normales'),
'1' => t('especiales'),
'2' => t('eventos'),
),
'#weight' => -4,
);
//Se muestran las misiones que se pueden jugar.
$form['tipo_mision']['clase_mision'] = array(
'#type' => 'select',
'#title' => t('selecciona la misión que se ha jugado:'),
'#options' => array(
'0' => t('mision 1'),
'1' => t('mision 2'),
'2' => t('mision 3'),
),
'#weight' => -3,
);
//Resulatdo de la partida
$form['resultado'] = array(
'#type' => 'fieldset',
'#title' => t('Tipo de resultado'),
'#weight' => 9,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
//selecciona como ha finalizado la partida.
$form['resultado']['ganar_perder'] = array(
'#type' => 'radios',
'#title' => t('Resultado de la partida'),
'#options' => array(t('he ganado'), t('He empatado'), t('He perdido')),
);
//botón de enviar dadtos
$form['submit'] = array (
'#type' => 'submit',
'#value' => t('guardar'),
'#weight' => 10,
);
return $form;
}
?>Un saludo
Oskar
Trackback URL for this post:
http://www.documentados.com/trackback/155
Delicious
meneame
documenea

Theme aberdeen-liquid. Configuración y administración del sitio
Comentarios
Muy bien!, parece que ya
Muy bien!, parece que ya empieza a salirte el formulario bastante resultón :)
Dos cosas te comento, has puesto el link a mi web como http.//cambrico.net ;)
Y luego echale un vistazo a la propiedad #tree del formulario:
$form['#tree'] = TRUE;
Ya que estas usando varios fieldsets y de esta forma cuando hagas el validate y submit, conservaras la estructura de arrays segun estos fieldsets y no tendras un array plano que quizas te resulte menos ordenado para manejarlo.
Muchas gracias compañero
Buenas Pedro, la url ya esta arreglada.
Me miro la propiedad #tree del formulario, además de otras como la propiedad #required, que también tengo que ver como se maneja.
El siguiente paso, es volver ha construir el formulario, pero en vez de arrays de datos, sacando la información de bases de datos.
Un saludo
Oskar
Enviar un comentario nuevo