我使用高级自定义字段重复器字段来生成一个选择菜单,其值与Wordpress短代码相对应,以在页面上显示表单。当选择不同的选项时,应该显示不同的表单。下面是我正在尝试的代码:
<select id="forms">
<option value="">Pick a form</option>
<?php while(the_repeater_field('the_forms')): ?><option value="<?php the_sub_field('form_shorttag'); ?>"><?php the_sub_field('form_name'); ?></option><?php endwhile; ?>
</select>
<div id="form_display"></div>
<script>
jQuery("#forms").on("change", function(){
var theform = jQuery(this).val();
jQuery("#form_display").html(<?php echo do_shortcode(+ theform); ?>);
})
</script>
我认为这将是一个简单的任务,但我肯定错过了一些东西,因为它不工作。如有任何建议,不胜感激。
你能做的就是在JavaScript中使用所有的形式创建变量,比如:
var someform = <?php echo json_encode(do_shortcode("someform")); ?>;
json_encode将PHP输出用双引号括起来。然后在onchange事件中进行切换:
var form_content;
switch (theform) {
case "someform" :
form_content = someform;
break;
(other cases)
}
jQuery("#form_display").html(form_content);
有更好的方法,但这可能对您有用。