Posted by Mr. NoNaMe on February 20, 2012 at 7:23pm
hola a todos...
necesito saber como puedo llenar recursivamente un select con los valores que posee una tabla, yo creo el select de la siguiente forma
<?php
$form['select'] = array(
'#type' => 'select',
'#title' => t('Values'),
'#options' => values(),
'#required' => TRUE,
);
?>y la función values() es esta
<?php
function values() {
$result = db_query("SELECT c1, c2 FROM tabla");
foreach ($result as $record) {
$items = array($record->c1=> $record->c2);
}
return $items;
}
?>el resultado de esto es el siguiente... el select solamente devuelve el último valor de la tabla y en caso de poner el return dentro del foreach entonces solo me pone el primer valor... como puedo hacer para que salgan todos los valores

Comments
<?phpfunction values()
<?phpfunction values() {
$result = db_query("SELECT c1, c2 FROM tabla");
foreach ($result as $record) {
$items[] = array($record->c1=> $record->c2);
}
return $items;
}
?>
Diseño Web
eso ya lo había probado y
eso ya lo había probado y hace lo que deseo de cierta forma, lo que pasa es el html que retorna es el siguiente y eso no es lo que quiero como tal
<select id="edit-category" name="category" class="form-select"><optgroup label="0"><option value="1">asdasd</option></optgroup><optgroup label="1"><option value="2">fgfghfgh</option></optgroup><optgroup label="2"><option value="3">jghjghjghj</option></optgroup></select>¿Primero estamos en d7 o en
¿Primero estamos en d7 o en d6?
Porque si es d7 la query no esta bien montada.
Mira también la función http://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_m... para montar el array que luego devolverás al form api.
Oskar
yo uso d7, y porque dices que
yo uso d7, y porque dices que la query esta mal montada??
Ya resolví el problema, aqui
Ya resolví el problema, aqui les dejo la solución...
<?phpfunction values() {
$result = db_select('nombre_tabla', NULL, array('fetch' => PDO::FETCH_ASSOC))
->fields('nombre_tabla', array('c1', 'c2'))
->execute();
$values= array();
foreach ($result as $value) {
$values[$value['c1']] = $value['c2'];
}
return $values;
}
?>
<?php$form['values'] = array(
'#type' => 'select',
'#title' => t('Select'),
'#options' => values(),
);
?>