Problemas con el $_GET[]

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
yemore's picture

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.

AttachmentSize
Sin título.png17.15 KB

Comments

Eso es debido a que los

mnico's picture

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.

yemore's picture

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. ;-)

Spanish

Group organizers

Group events

Add to calendar

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: