Posted by yemore on April 21, 2014 at 6:33pm
Sigo paliando con la creación de este modulo. Logre hacer un listado como el que les muestro en esta imagen.
function provincia_listar(){
$header = array('Provincia', 'Edición', 'Eliminación');
$query = db_select('provincia', 'nom_provincia')
->fields('nom_provincia')
->extend('PagerDefault')
->limit(10)
->execute()
->fetchAll();
foreach ($query as $try){
$rows[] = array(
$try->nom_provincia,
l('Editar','provincia/editar/?id='.$try->id_provincia),
l('Eliminar','provincia/eliminar/?id='.$try->id_provincia),
);
}
$build ['table'] = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
);
$build ['pager'] = array(
'#theme' => 'pager',
);
return $build;
}
Supuestamente si deseo editar o eliminar uno de los elementos que listo, el sistema debe llamar a la función correspondiente y tomar el dato del id que pase en el link como parámetro, pero algo pasa con el $_GET[] y al no obtener el dato todo se me va a bolina.
function provincia_editar(){
$id_provincia = $_GET['id'];
$result = db_select('provincia', 'nom_provincia')
->fields('nom_provincia')
->condition('id_provincia', $id_provincia, '=')
->execute()
->fetchAssoc();
$form = array();
$form['nom_prov'] = array(
'#type' => 'textfield',
'#title' => 'Nombre de la Provincia',
'#size' => 50,
'#maxlength' => 50,
'#required' => TRUE,
'#default_value' => $result->nom_provincia,
);
$form['cancelar'] = array(
'#type' => 'submit',
'#value' => t('Cancelar'),
);
$form['modificar'] = array(
'#type' => 'submit',
'#value' => t('Modificar'),
);
return $form;
}
Ya lo he leído varias veces y la verdad que sigo sin entender porque. Debo estar cometiendo algún error para que no tome el dato. Tengo las URLs limpias ya no se que otra cosa sea.
Attachment | Size |
---|---|
Sin título.png | 17.15 KB |
Comments
Eso es debido a que los
Eso es debido a que los parámetros no se deben escriben directamente en el segundo argumento de l(), ya que codificará el carácter "?", por eso no funciona.
Los parámetros que quieras adjuntar al link se agregan en el tercer argumento de la función, en la key "query".
Por lo tanto
Esto esta mal:
<?php
l('Editar','provincia/editar/?id='.$try->id_provincia);
?>
Esto esta bien:
<?php
l('Editar','provincia/editar', array('query' => array('id' => $try->id_provincia)));
?>
PD: Favor cambiar el Grupo de este contenido a Spanish, la idea de los grupos por países es para ver temas específicos que correspondan al país.
Saludos
Muchas gracias por aclararme la duda.
Muchas gracias por aclararme la duda. En cuanto a lo de los grupos, disculpa. No sabía que esa era la regla de algunos. Pensé que todos eran iguales a los dos primeros que me suscribí, que lo que buscaban era aclarar dudas y notificar encuentros para todos los hispano-hablantes. El que saliera como Cuba debe haber sido porque lo cree desde ese grupo pero especifique que saliera en todos. Ahora mismo lo quito, no te preocupes. ;-)