HTML to render field:
<p class="form-row form-row-wide">
<label for="reg_diocese">Diocese</label>
<select type="text" class="input-text" name="diocese" id="diocese" value="<?php echo esc_attr( $user->diocese ); ?>" class="regular-text" />
<option value="<?php echo esc_attr( $user->diocese ); ?>"><?php echo esc_attr( $user->diocese ); ?></option>
</select>
</p>
已更新 - &gt;以上代码显示在注册表单上,该表单将下拉列表中的选定教区值保存为用户表中的新用户元数据。
Js:
var jsonData = {
"Table": [{
"diocese": "Aberdeen & Orkney"
}, {
"diocese": "Armagh"
}, {
"diocese": "Bangor"
}, {
"diocese": "Bath & Wells"
}, {
"diocese": "Birmingham"
}, {
}]
};
var listItems = '<option selected="selected" value="0">Select</option>';
for (var i = 0; i < jsonData.Table.length; i++) {
listItems += "<option value='" + jsonData.Table[i].diocese + "'>" + jsonData.Table[i].diocese + "</option>";
}
$("#diocese").html(listItems);
编辑account.php:
<p class="form-row form-row-wide">
<label for="reg_diocese">Diocese</label>
<select onchange="<?php echo esc_attr( $user->diocese ); ?>" type="text" class="input-text" name="diocese" id="diocese" value="<?php echo esc_attr( $user->diocese ); ?>" class="regular-text" />
<option value="<?php echo esc_attr( $user->diocese ); ?>"><?php echo esc_attr( $user->diocese ); ?></option>
</select>
</p>
更新 - &GT;用户可以选择编辑他们的注册选项,所有标准文本字段都显示数据库提出的值,但是选择字段没有显示所选值,而是显示在js中设置的“选择”。
因此,当前在表单中选择该值并通过用户元保存到数据库,这允许我在前端的站点上显示它。
问题是select字段的占位符显示在edit-form.php中,其中我实际上想要用户选择显示的值。
如果我检查字段,该值实际上已更新为我的选择,只是占位符没有改变......
谢谢, 丹