没有SQL的PHP​​ + HTML下拉框

时间:2014-02-27 18:16:56

标签: php jquery html wordpress

我们的目标是在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 -->

任何帮助将不胜感激! 感谢。

1 个答案:

答案 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'); 
            }); 
相关问题