因此,我的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/会将钩子添加到select字段,而不是添加一个快捷代码。
发布于 2019-11-22 18:33:14
您还需要在父span标记中添加选择字段名称。使用下面的代码。
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; }https://stackoverflow.com/questions/58991360
复制相似问题