我的代码返回的是字段号,而不是汽车品牌的名称:
<select id="marca" name="marca" class="form-control">
<option value="">Marca</option>
<option value="23">Aprillia</option>
<option value="1826">Porsche</option>
<option value="4131">Saab</option>
我不知道为什么。 我的JavaScript代码是:
<select id="marca" name="marca" class="form-control">
<option value="" <?php if($inputMarcaId == "0"): ?>selected<?php endif; ?>>Marca</option>
<?php
$arguments = array(
'offset' => '',
'showposts' => '-1',
's' => '',
'category' => '',
'tag' => '',
'orderby' => 'menu_order',
'include' => '',
'exclude' => '',
'meta_key' => '',
'meta_value' => '',
'post_type' => 'marcas',
'post_mime_type' => '',
'post_parent' => '',
'post_status' => '',
'suppress_filters' => '0'
);
$marcas = get_posts( $arguments );
foreach($marcas as $marca):
?>
<option value="<?php echo $marca->ID ?>" <?php if($inputAreaId == $marca->ID): ?>selected<?php endif; ?>><?php echo $marca->post_title; ?></option>
<?php
endforeach;
?>
我在这里做错什么了吗?
答案 0 :(得分:4)
我的代码返回的是字段号,而不是汽车品牌的名称
这是因为在PHP中,您将每个选项的value属性设置为:
<option value="<?php echo $marca->ID ?>"
如果在那里需要汽车名称,则应改用$marca->post_title
。但是请确保相应地更改代码的其他部分。例如,它用于在下拉菜单中预先选择汽车:
<?php if($inputAreaId == $marca->ID): ?>selected<?php endif; ?>
话虽如此,这只是对正在发生的事情的解释。如果您需要电子邮件中的汽车名称而不是汽车ID,则在从下拉列表中读取所选汽车时,应阅读“文本”属性而不是“值”。
更改标记以将汽车名称用作值可能需要在下游进行很多更改。因此,最好更改读取下拉菜单的方法。