Página 1 de 1
Cargar select en página personalizada
Publicado: 22 Ago 2012, 16:00
por carlos123
Hola a todos,
He hecho una página personalizada con ayuda de
Hacer una pagina personalizada y otros tutos.
Me gustaría saber como presentar una select en el html que se carguen las opciones desde el php, con una consutla a una base de datos (no de las existentes en phpbb, por ejemplo una de provincias).
Gracias.
Re: Cargar select en página personalizada
Publicado: 22 Ago 2012, 19:10
por carlos123
Hola a todos,
He llegado hasta aquí y no sé donde está el error.
Tengo un php en la raiz que es:
Código: Seleccionar todo
<?php
define('IN_PHPBB', true);
//Definimos el directorio de la instalacion del phpBB
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
//Incluimos el fichero comon.php, es necesario
include($phpbb_root_path . 'common.' . $phpEx);
// since we are grabbing the user avatar, the function is inside the functions_display.php file since RC7
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
// specify styles and/or localisation
// in this example, we specify that we will be using the file: my_language_file.php
$user->setup('mods/directorio');
/*
* All of your coding will be here, setting up vars, database selects, inserts, etc...
*
*/
$idPais = 1;
$sql = "SELECT idProvincia, nombre FROM ".PROVINCIAS_TABLE." WHERE idPais = ".$idPais;
$result = $db->sql_query($sql);
$l_provincias = array();
while ($row = $db->sql_fetchrow($result) ) {
$l_provincias[$row['idProvincia']] = $row;
}
$db->sql_freeresult($result);
foreach ( $l_provincias as $l_provincia ) {
//echo $provincia['idProvincia']."-".$provincia['nombre'].",";
$template->assign_block_vars('provincias', array(
'idProvincia' => $l_provincia['idProvincia'],
'nombre' => $l_provincia['nombre'],
));
}
// Page title, this language variable should be defined in the language file you setup at the top of this page.
page_header($user->lang['MI_TITULO']);
// Set the filename of the template you want to use for this file.
// This is the name of our template file located in /styles/<style>/templates/.
$template->set_filenames(array(
'body' => 'directorio.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
Y un html en template del estilo:
Código: Seleccionar todo
<!-- INCLUDE overall_header.html -->
<h2>Directorio</h2>
<div class="panel">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<table class="table1 corners-top" cellspacing="1">
<tr>
<th>{L_ID}</th>
<th>{L_NOMBRE}</th>
</tr>
<!-- BEGIN provincias -->
<tr class="bg1">
<td>{provincias.idProvincia}</td>
<td>{provincias.nombre}</td>
</tr>
<!-- END provincias -->
</table>
</div>
</div>
<span class="corners-bottom"><span></span></span>
</div>
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
Y me produce este resultado:
Lo tengo en localhost en desarrollo, por ello no se ve en el dominio.
Agradecería cualquier ayuda.
Gracias.
Re: Cargar select en página personalizada
Publicado: 23 Ago 2012, 02:03
por Makoto
activa el modo debug y quisas veas donde salta el error
Re: Cargar select en página personalizada
Publicado: 23 Ago 2012, 07:51
por carlos123
Gracias Makoto.
He activado el debug y el extra debug, faltaba la definición de dos variables pero una vez definidas no me ha dado ningún error, pero el resultado es el mismo.
Tambien he probado de cargar en una variable la lista de provincias y mostrarla en el template y ha funcionado. Veo la lista de provincias.
Creo que el problema lo tengo en la carga del array ( $template->assign_block_vars('provincias', array(... ), el numero de items listados en el template coincide con los registros cargados en dicho array y con los existentes en la base de datos, sin embargo el contenido del array o la referencia a él no está bien.
No soy capaz de ver donde está el error.
Re: Cargar select en página personalizada Tema Solucionado
Publicado: 23 Ago 2012, 12:51
por carlos123
Ya está. SOLUCIONADO.
Sólo hay que leer....
Template.assign block vars
Note: The means of transporting data to the template is the use of template variables.. By convention, template variable names are always all-uppercase where block names are always all-lowercase. Variables output to the user are enclosed in curly braces, and are formatted in the following way: {blockname.L_VARIABLE_NAME}.
Es decir, donde dice
tendría que ser
Gracias a todos.
Vamos a seguir.......