【发布时间】:2019-11-22 09:38:20
【问题描述】:
所以我的 WPCF7 中有一个动态下拉列表。该插件在数据库中查询已发布的可用免费试用课程并将其放入下拉列表中。现在我想知道如何使它成为必填字段,因此当提交时进行表单验证时,它会检查该字段是否已被选中。 (并显示它需要的标签)
我的联系表格 7 中有这个简码:
[select_free_trial]
然后在我的Wordpress的functions.php中添加了这个函数和动作:
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; }
我已经在选择字段标签中添加了这个:
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/,这些信息会在选择字段中添加一个钩子,而不是一个简码。
【问题讨论】:
标签: javascript php wordpress