首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Wordpress和CF7中填充另一个选项

问在Wordpress和CF7中填充另一个选项
EN

Stack Overflow用户
提问于 2018-03-14 12:28:42
回答 2查看 3.3K关注 0票数 2

我在Wordpress中使用联系人表7 pugin。我需要用一个MySQL DB中的“作物”填充一个Select,根据所选的字段,第二个选择必须填充这个作物的“品种”。

我知道使用CF7条件字段是可能的,但有53种作物和400多个品种。所以,这将是DB和联系人形式中的许多字段。

我认为应该使用ajax,但我对此一无所知,我也找不到任何例子来学习使用ajax + CF7 + Wordpress。我想做的是对MySQL (Select variedad from cultivos where cultivo = 'id_cultivo')进行查询,并使用结果填充select。

有人知道我是怎么做到的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-14 17:51:54

我需要用MySQL DB中的“作物”填充Select

使用用于CF7的智能网格插件扩展中的动态下拉字段。

它允许您使用一组现有的post或分类法填充您的下拉列表,否则iit还能够使用钩子填充,因此如果您的“作物”位于自定义表中,则可以构建自定义sql。

根据所选作物的不同,第二个选择必须填充这种作物的“品种”。

所以这更棘手。使用分类法填充的动态下拉列表允许您构建jquery select2下拉列表,这样可以更容易地搜索长的选项列表,而且,如果您的分类法是分层的(2层深度),它将使用父级术语作为下拉列表中的选项组,而实际选项将是子选项。因此,你可以把你的“作物”和“品种”组织起来,把它们归类为父母-.没有品种的作物只会有一个品种,您的下拉列表将允许用户在特定类别中选择一个品种。

这将使在表单上设置更简单,而不需要隐藏下拉列表。它还具有更高的可伸缩性和可维护性,因为每当您更新作物/品种术语时,它都会动态地反映在表单中,而不必更改表单。

我希望所有这些都是有意义的。如果您想进一步探索这一点,您可以在插件支持论坛上发布。

票数 1
EN

Stack Overflow用户

发布于 2018-03-15 11:05:43

为了解决我的麻烦,我做了以下几行:

在js文件中:

代码语言:javascript
复制
    jQuery(document).ready(function($) {
     $("#idsubfamilia").change(function(e) {


                 e.preventDefault();
         jQuery.post(MyAjax.url, {action : 'buscar_posts' ,cadena : $('#idsubfamilia').val() }, function(response) {
//                $('#variedad_container').hide().html(response).fadeIn();
$('#variedad_container').hide().html(response).fadeIn();
            });
    });

});

在functions.php中(感谢http://masquewordpress.com/como-utilizar-ajax-correctamente-en-wordpress/):

代码语言:javascript
复制
/* AJAX */

// Primero incluimos nuestro archivo javascript definido anteriormente
wp_enqueue_script( 'mi-script-ajax',get_bloginfo('stylesheet_directory') . '/js/ajax-search.js', array( 'jquery' ) );

// ahora declaramos la variable MyAjax y le pasamos el valor url (wp-admin/admin-ajax.php) al script ajax-search.js
wp_localize_script( 'mi-script-ajax', 'MyAjax', array( 'url' => admin_url( 'admin-ajax.php' ) ) );

//Para manejar admin-ajax tenemos que añadir estas dos acciones.
//IMPORTANTE!! Para que funcione reemplazar "buscar_posts" por vuestra action definida en ajax-search.js

add_action('wp_ajax_buscar_posts', 'buscar_posts_callback');
add_action('wp_ajax_nopriv_buscar_posts', 'buscar_posts_callback');

function buscar_posts_callback() {

        global $wpdb;
    $subfamilia=$_POST['cadena'];
    //$datos = $wpdb->get_results('SELECT id, subfamilia_' . $idioma . ' FROM wp_custom_subfamilias  ORDER BY subfamilia_' . $idioma);
    $datos = $wpdb->get_results("SELECT variedad FROM wp_custom_variedad where subfamilia_fk='".$subfamilia."' ORDER BY variedad");

     echo '<ul>';
echo '<select name="selectVariedad" id="idSelectVariedad">';
    foreach ($datos as $dato) {


       echo "<option value='".$dato->variedad."'>".$dato->variedad."</option>";


    }
echo '</select>';
     echo '</ul>';
    die(); // Siempre hay que terminar con die

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49277808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档