我们的目标是在wordpress联系人部分模板中添加一个当前只包含文本字段的下拉框。我们希望找到实现此目的的最简单方法 - 不涉及任何SQL(保持静态) php中的值)。
我相信表单使用AJAX发送完成的表单。
您可以在此处查看表单(页面底部):http://demo.rocknrolladesigns.com/wp/jarvis/callouts/
从我们看到的,表单目前由两部分组成 - 在 functions.php :
wp_localize_script( 'rnrscripts', 'rnr_global_vars', array(
'contact_form_required_fields_label_ajax' => __('This is a required field', 'rocknrolla'),
'contact_form_warning' => __('Please verify fields and try again.', 'rocknrolla'),
'contact_form_email_warning' => __('Please enter a valid e-mail address and try again.', 'rocknrolla'),
'contact_form_error' => __('There was an error sending your email. Please try again later.', 'rocknrolla'),
'contact_form_success_message' => __('Thanks, we got your mail and will get back to you soon!', 'rocknrolla'),
'contactFormDefaults_name' => __('Name', 'rocknrolla'),
'contactFormDefaults_email' => __('E-mail', 'rocknrolla'),
'contactFormDefaults_subject' => __('Subject', 'rocknrolla'),
'contactFormDefaults_message' => __('Message', 'rocknrolla'),
'commentFormDefaults_author' => __('Name', 'rocknrolla'),
'commentFormDefaults_email' => __('E-mail', 'rocknrolla'),
'commentFormDefaults_url' => __('http://', 'rocknrolla'),
'searchFormDefaults_search' => __('Search', 'rocknrolla')
) );
}
和 contact-section.php (联系表单的wordpress页面模板)
<!-- START CONTACT FORM -->
<div id="contact-form">
<form action="<?php the_permalink(); ?>" method="post" class="contactForm form" id="contact-form">
<div id="contact-input">
<input type="text" name="contactName" class="required" id="contactName" value="<?php _e('Name', 'rocknrolla'); ?>" />
<input type="text" name="contactEmail" class="required" id="contactEmail" value="<?php _e('E-mail', 'rocknrolla'); ?>" />
<input type="text" name="contactSubject" class="required" id="contactSubject" value="<?php _e('Subject', 'rocknrolla'); ?>" />
</div>
<div id="contact-textarea">
<textarea class="required" name="contactMessage" id="contactMessage" rows="" cols=""><?php _e('Message', 'rocknrolla'); ?></textarea>
<textarea class="required" name="contactMessage" id="contactMessage" rows="" cols=""><?php _e('Message', 'rocknrolla'); ?></textarea>
<div>
<div id="contact-submit">
<input type="hidden" name="submitted" id="submitted" value="true" />
<input type="submit" value="<?php _e('Send', 'rocknrolla'); ?>" class="comment-submit button submit" id="submitform" />
<span id="msg"></span>
</div>
</form>
<div class="clear"></div>
</div>
<!-- END CONTACT FORM -->
任何帮助将不胜感激! 感谢。
答案 0 :(得分:0)
你可以用jquery来做。这会更容易。如果你想添加一个新字段,如果你能够改变后端,那就是代码:
$('form#contact-form').append('<select name="somename"><option>First Value</option><option>Second Value</option></select>');
如果您不改变后端并替换其中一个textareas,则这是代码(假设主题字段):
$('#contactSubject').remove();
$('form#contact-form').append('<select name="contact-subject" id="contactSubject"><option>First Value</option><option>Second Value</option></select>');
此外,如果你想保留所有字段但是在不改变后端的情况下添加新字段,我建议你处理表单提交并将新的selectbox值添加到你想要的任何字段的末尾。对于这个,你可以使用这个代码:
$(document).on('submit', 'form#contact-form', function(){
//I'm assuming you would like to add the new select box value to contact message field.
contactMessage = $('#contactMessage');
currentValueForMessage = contactMessage.val();
//Add new value
newValue = currentValueForMessage+$('#newAddedSelectBoxID').val();
contactMessage.val(newValue);
//Now get all the form values and do the rest
//Do the post request to $('form#contact-form').prop('action');
});