Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 根据其他选择字段(ACF)的选择更新中继器中的选择字段_Wordpress_Advanced Custom Fields - Fatal编程技术网

Wordpress 根据其他选择字段(ACF)的选择更新中继器中的选择字段

Wordpress 根据其他选择字段(ACF)的选择更新中继器中的选择字段,wordpress,advanced-custom-fields,Wordpress,Advanced Custom Fields,我已经找了一段时间了,但我真的找不到解决办法。我已经阅读了大量关于动态填充选择字段的文章,但它们的实现方式并不是我真正想要的 我在页面上有一个repeater字段,用户可以从Act CPT中选择多个Act 在这些动作中,有一个中继器字段,他们可以在其中添加动作将要执行的不同时间 我的“选择动作”中继器是这样的 选择Act select字段,显示Act cpt中的所有帖子 选择时间选择字段,需要在“选择动作”更改时从所选动作帖子加载自定义元数据。 我要寻找的是,当用户选择一个动作时,我希望“选择时

我已经找了一段时间了,但我真的找不到解决办法。我已经阅读了大量关于动态填充选择字段的文章,但它们的实现方式并不是我真正想要的

我在页面上有一个repeater字段,用户可以从Act CPT中选择多个Act

在这些动作中,有一个中继器字段,他们可以在其中添加动作将要执行的不同时间

我的“选择动作”中继器是这样的

选择Act select字段,显示Act cpt中的所有帖子 选择时间选择字段,需要在“选择动作”更改时从所选动作帖子加载自定义元数据。 我要寻找的是,当用户选择一个动作时,我希望“选择时间”选择字段加载用户在act帖子中添加的次数

假设我有第A幕,博多姆的孩子们。我在帖子上加了四次。21.00、22.00、23.00和24.00

我还有第二幕,社会扭曲。我在帖子上加了三次。15.00、16.00和17.00

我想要的是在我的中继器中,当我选择Bodom的子代时,我希望中继器部分的时间选择随着我添加到Bodom的子代的时间而更新

然后我在acts repeater中添加另一个act,在这里我选择社会扭曲。然后,我希望相应的时间选择与我添加到《社会扭曲法案》中的时间一起更新

到目前为止,我尝试添加一些JS来执行select更改,我不知道具体触发他各自的time select来更新字段,因为中继器是动态设置的,我没有为该字段选择ID或key

这很酷,但我不知道如何实现,就是从我的JS文件中触发acf/load_field/key=blablabla函数,在这里我可以通过找到触发更改事件的第一个select之后的第一个select来查找正确的键。然后,当加载字段动作被触发时,执行一个函数,并在“我的时间”中为相应动作选择正确的加载时间

对不起,如果这是一个有点混乱,我真的不知道如何描述这个不同,但如果你想了解更多信息,请问


谢谢。

我觉得在这种情况下,因为您需要的是动态的,所以可以考虑使用Wordpress内置的Ajax来处理这个问题。所以,您可以做的是在更改select字段时触发ajax调用,以执行如下操作

jQuery('act_select_field').change(function(){
    jQuery.ajax({
        url: "/wp-admin/admin-ajax.php",
        type: 'POST',
        data: {
            action: 'get_related_act_times',
            act_id: //send through the act ID value,            
        },
        dataType: 'html',
        success: function (result) {
            //Use the html to populate your time select field
        },
        error: function (errorThrown) {
            console.log(errorThrown);
        }
    });
})
然后,在functions.php中注册一个函数来处理此调用,如下所示:

add_action('wp_ajax_get_related_act_times', 'get_act_times');
add_action('wp_ajax_nopriv_get_related_act_times', 'get_act_times');
/**
 * Get a list of events from Clear Bookings
 */
function get_act_times(){
    $act_id = $_POST['act_id'];
    $related_times = get_field('times_repeater_field',$act_id);
    foreach($realted_times as $time){
        //Build up your select html here
    }
    echo select_html
    die();
}
如果您想阅读更多关于管理Ajax方面的内容,那么Codex中有很多信息:。这有望让您开始动态填充第二个下拉列表,尽管您需要调整代码以在自己的系统上工作