Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Populando Select com dados do bd #479

Open
cunhapablo opened this issue Mar 22, 2018 · 1 comment
Open

Populando Select com dados do bd #479

cunhapablo opened this issue Mar 22, 2018 · 1 comment
Labels

Comments

@cunhapablo
Copy link

cunhapablo commented Mar 22, 2018

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á.

@luchesigui
Copy link

luchesigui commented Sep 30, 2019

@cunhapablo, vi alguns problemas no código que acredito que podem ser o motivo.

  1. Você ta usando $opcoes_paises mas nunca declaro;
  2. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants