首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Wordpress联系人7中设置动态下拉字段为必填字段

在Wordpress联系人7中设置动态下拉字段为必填字段
EN

Stack Overflow用户
提问于 2019-11-22 17:38:20
回答 1查看 237关注 0票数 0

因此,我的WPCF7中有一个动态下拉列表。该插件在数据库中查询已发布的可用免费试用类,并将这些类放入下拉列表中。现在,我想知道如何将其设置为必填字段,以便在提交时进行表单验证时,检查该字段是否已被选中。(并显示所需的标签)

我的联系人表单7中有此短代码:

代码语言:javascript
复制
[select_free_trial]

然后在我的Wordpress的functions.php中,我添加了这个函数和动作:

代码语言:javascript
复制
add_action('wpcf7_init', 'add_cf7_free_trial');

function add_cf7_free_trial() {
    wpcf7_add_shortcode('select_free_trial', 'select_free_trial'); }

function select_free_trial() {
    $form = 'Free trial';

    include('/home/pureseat/BETANGOCRM/include/db.php');
    $sql= "SELECT CRM_PRODUCTS.ID, CRM_PRODUCTS.PRODUCTS_NAME, CRM_PRODUCTS.PRODUCTS_TIMING,CRM_PRODUCTS.PRODUCTS_DATES, CRM_LOCATIONS.LOCATIONS_CITY,CRM_LOCATIONS.LOCATIONS_CITY_FR, CRM_LOCATIONS.LOCATIONS_CITY_NL FROM CRM_PRODUCTS JOIN CRM_LOCATIONS ON CRM_PRODUCTS.LOCATIONS_ID=CRM_LOCATIONS.LOCATIONS_ID WHERE CRM_PRODUCTS.PRODUCTS_PUBLISHONWEBSITE=1 AND CRM_PRODUCTS.PRODUCTS_TYPE='FREE_TRIAL' order by CRM_PRODUCTS.PRODUCTS_DATES";
    $result = mysqli_query($coni,$sql);
    echo '<p><span class="wpcf7-form-control-wrap PRODUCTS_ID"><label> Please select *<select name="color" class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true" aria-invalid="false">';
    echo '<option value=""></option>';
    while ($row = mysqli_fetch_array($result)){
        printf('<option value="%s">%s</option>', $row['ID'], $row['PRODUCTS_NAME']);
    }
    echo '</select></label></span></p>';

    $custom_tag = ob_get_contents();
    ob_end_clean();
    return $custom_tag; }

我已经将其添加到选择字段标记中:

代码语言:javascript
复制
class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true"

但这并不会导致该字段的验证。我想我应该把它添加到javascript/jquery验证中,但是我对Wordpress还不熟悉,所以我不知道从哪里开始。

或者有没有更好的方法来填充我的下拉列表?我还在这里找到了一些信息,https://xnau.com/populate-a-form-dropdown-from-the-database/会将钩子添加到select字段,而不是添加一个快捷代码。

EN

回答 1

Stack Overflow用户

发布于 2019-11-22 18:33:14

您还需要在父span标记中添加选择字段名称。使用下面的代码。

代码语言:javascript
复制
add_action('wpcf7_init', 'add_cf7_free_trial');

function add_cf7_free_trial() {
    wpcf7_add_shortcode('select_free_trial', 'select_free_trial'); }

function select_free_trial() {
    $form = 'Free trial';

    include('/home/pureseat/BETANGOCRM/include/db.php');
    $sql= "SELECT CRM_PRODUCTS.ID, CRM_PRODUCTS.PRODUCTS_NAME, CRM_PRODUCTS.PRODUCTS_TIMING,CRM_PRODUCTS.PRODUCTS_DATES, CRM_LOCATIONS.LOCATIONS_CITY,CRM_LOCATIONS.LOCATIONS_CITY_FR, CRM_LOCATIONS.LOCATIONS_CITY_NL FROM CRM_PRODUCTS JOIN CRM_LOCATIONS ON CRM_PRODUCTS.LOCATIONS_ID=CRM_LOCATIONS.LOCATIONS_ID WHERE CRM_PRODUCTS.PRODUCTS_PUBLISHONWEBSITE=1 AND CRM_PRODUCTS.PRODUCTS_TYPE='FREE_TRIAL' order by CRM_PRODUCTS.PRODUCTS_DATES";
    $result = mysqli_query($coni,$sql);
    echo '<p><label> Please select *<span class="wpcf7-form-control-wrap PRODUCTS_ID color"><select name="color" class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true" aria-invalid="false">';
    echo '<option value=""></option>';
    while ($row = mysqli_fetch_array($result)){
        printf('<option value="%s">%s</option>', $row['ID'], $row['PRODUCTS_NAME']);
    }
    echo '</select></span></label></p>';

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

https://stackoverflow.com/questions/58991360

复制
相关文章

相似问题

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