Populando Select com dados do bd
cunhapablo opened this issue · 1 comments
cunhapablo commented
Olá pessoal, boa tarde.
Já pesquisei diversas formas e estou recorrendo a ajuda de vocês no seguinte problema:
Criei um custom post type para Países e estou criando um outro custom post type de cidades em que o usuário deverá selecionar o país que aquela cidade pertence, porém coloco o array no 'options' e a o select não é preenchido com os dados.
Segue o código para análise :
$paises_terms = get_posts( array( 'post_type' => 'pais') );
$paises_terms_keys = array();
$paises_terms_values = array();
foreach( $paises_terms as $paises_term ) {
array_push( $paises_terms_keys, $paises_term->ID );
array_push( $paises_terms_values, $paises_term->post_title );
}
function cidade_metabox() {
$cidades_metabox = new Odin_Metabox(
'cidade', // Slug/ID of the Metabox (Required)
'Detalhes da Cidade', // Metabox name (Required)
'cidade', // Slug of Post Type (Optional)
'normal', // Context (options: normal, advanced, or side) (Optional)
'high' // Priority (options: high, core, default or low) (Optional)
);
$cidades_metabox->set_fields(
array(
/**
* Default input examples.
*/
array(
'id' => 'pais', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'select', // Obrigatório
// 'attributes' => array(), // Opcional (atributos para input HTML/HTML5)
//'default' => 'three', // Opcional
'description' => __( 'Descrition Example', 'odin' ), // Opcional
'options' => $opcoes_paises
)
)
}
agradeço a atenção desde já.
guiluchesi commented
@cunhapablo, vi alguns problemas no código que acredito que podem ser o motivo.
- Você ta usando $opcoes_paises mas nunca declaro;
- O set_fields está faltando um "(" pra fechar;
$paises = get_posts( array(
'post_type' => 'pais',
'orderby' => 'title',
'order' => 'ASC',
) );
$opcoes_paises = array();
foreach( $paises as $pais ) {
$opcoes_paises[$pais->ID] = $pais->post_title;
}
$cidades_metabox->set_fields(
array(
/**
* Default input examples.
*/
array(
'id' => 'pais', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'select', // Obrigatório
'description' => __( 'Description Example', 'odin' ), // Opcional
'options' => $opcoes_paises
)
)
);
Atribui o resultado do get_post organizado em ordem alfabética na variável $paises e joguei o id e título e id num array de $opcoes_paises e acho que isso já resolve.