Formulario con el Drupal Form API
Buenas:
Antes de nada comentaros que este es mi primer post aunque os leo desde hace tiempo. El tema es que ando intentado hacer un formulario con el API de Drupal, pero me he quedado atascado y necesito una ayudita. Lo que tengo hasta ahora es lo siguiente:
<?php
//Función principal del formulario
function prueba() {
$form['busca_linea'] = array(
'#type' => 'textfield',
'#title' => t('Nº de Línea'),
'#size' => 60,
'#maxlength' => 64,
'#description' => t('Línea que se desdea buscar'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Buscar')
);
$output = drupal_get_form('prueba', $form);
return $output;
}
//Función de validación del formulario
function prueba_validate($form_id, $form_values) {
if ($form_values['busca_linea'] == '') {
form_set_error('', t('Introduce un número de línea para comenzar la búsqueda.'));
}
}
//Función de envío del formulario
function prueba_submit($form_id, $form_values) {
$lin=$form_values['busca_linea'];
drupal_goto('node/41');
}
return prueba();
?>El problema lo tendo en la función submit. Lo que quiero hacer es abrir el nodo 41 pasandole la variable $lin, pero he probado con drupal_goto('node/41&id_linea=$lin') pero no funciona. Como podría pasarle esa variable al nodo? Gracias de antemano.
- Inicie sesión o regístrese para enviar comentarios







Usa comilla doble y ?
Recuerda que para reemplazar el valor de la variable $lin debes usar comillas dobles para delimitar la cadena.
Por otra parte, intenta reemplazando la & por ?, como si recién estuvieras enviando un parámetro (en caso de enviar más de uno, ya usa la & para los subsiguientes).
Quedaría algo como:
drupal_goto("node/41?id_linea=$lin");
Revisando la documentación
Mi respuesta inicial fue apurada.
Al parecer, de acuerdo a la documentación, la función drupal_goto(), tiene tres parámetros:
Si no he entendido mal, usa el segundo parámetro para lo que necesitas (el tercero es para identificadores de fragmento de una página).
Entonces quedaría así:
drupal_goto("node/41", "id_linea=$lin");
A ver si funciona (no lo he probado).
Saludos
Ricardo