Forms 当表单向用户抛出验证消息时,站点上的下拉导航将中断

Forms 当表单向用户抛出验证消息时,站点上的下拉导航将中断,forms,codeigniter,drop-down-menu,controller,responsive-design,Forms,Codeigniter,Drop Down Menu,Controller,Responsive Design,解决方法:在联系人控制器中,我有功能索引,带有页面位置,然后是一个单独的名为功能发送邮件。我删除了send_mail功能,并将代码上移到index功能,当发送电子邮件或返回错误消息时,它将url保持为/contact not/contact/send_mail,现在下拉菜单开始工作!当然,在我的联系人视图中,我更改了echo form_open('contact/send_email')回显表格打开('contact') 我已经使用Codeigniter框架构建了一个响应性网站 当屏幕缩小到移

解决方法:在联系人控制器中,我有
功能索引
,带有页面位置,然后是一个单独的名为
功能发送邮件
。我删除了send_mail功能,并将代码上移到index功能,当发送电子邮件或返回错误消息时,它将url保持为/contact not/contact/send_mail,现在下拉菜单开始工作!当然,在我的联系人视图中,我更改了
echo form_open('contact/send_email')回显
表格打开('contact')


我已经使用Codeigniter框架构建了一个响应性网站

当屏幕缩小到移动/平板电脑宽度时,导航将从按钮更改为下拉选择菜单

我的控制器中有一个名为send_mail的功能,当用户单击表单时,他们将收到一条错误消息(如果填写的表单不正确)或一条成功消息。单击此按钮时,url中的send_mail将添加到表单的末尾

除测试时外,表格未提交所有工程;只有当响应站点更改为下拉选择菜单并且发送邮件被添加到url的末尾时,您才能导航到另一个页面-它只是停留在同一页面上

目前,我正在测试,并且我已经在本地主机上构建了该站点,因此不确定它是否只是这一点,还是这一问题的可能解决方案

在这篇文章中,我没有添加任何代码(但如果有帮助的话,可以添加),因为我是在问为什么这样做不起作用?这是否与我的媒体查询或下拉列表有关,因为即使发送邮件在末尾,当它是其他宽度的按钮时,它仍然工作

代码如下:

提交表单时,是否有可能在routes文件夹的url中隐藏send_email功能,以便只显示
http:///www.websitename/contact
而不是
http:///www.websitename/contact/email_send
还是这与用户返回表单时的“if语句”有关

同样,当使用其他宽度的标准nav ul样式调整站点大小时,一切都能完美工作,只有下拉菜单在媒体查询中显示之前是隐藏的

选择菜单的HTML(除非是移动版本,否则此选项将隐藏)

Jquery用于响应导航

联系人控制器中的发送电子邮件功能

public function send_email (){

        $this->load->library('form_validation');

        $this->form_validation->set_rules('name','Name','trim|required|htmlspecialchars|max_length[30]|xss_clean');
        $this->form_validation->set_rules('email','Email Address','trim|valid_email|required|htmlspecialchars|max_length[100]|xss_clean');
        $this->form_validation->set_rules('message','Message','trim|required|htmlspecialchars|xss_clean');

        $this->form_validation->set_error_delimiters('<div id="errors">&bull;&nbsp;','</div>');

        if ($this->form_validation->run() == FALSE) {
            $data['success'] = '';
            $data['page_title'] = 'Contact';
            $data['content'] = 'contact';
            $this->load->view('template', $data);

        }else{

            $data['success'] = 'The email has successfully been sent';
            $data['name'] = $this->input->post('name');
            $data['email'] = $this->input->post('email');
            $data['message'] = $this->input->post('message');

            $html_email = $this->load->view('html_email', $data, true);

            //load the email class
            $this->load->library('email');

            $this->email->from(set_value('email'), set_value('name'));
            $this->email->to('emailaddressusuallyhere');
            $this->email->subject('Message from Website');
            $this->email->message($html_email);

            $this->email->send();

            $data['success'] = 'The email has successfully been sent';
            $data['page_title'] = 'Contact';
            $data['content'] = 'contact';   
            $this->load->view('template', $data);
        }
    }
公共功能发送电子邮件(){
$this->load->library('form_validation');
$this->form_validation->set_rules('name'、'name'、'trim | required | htmlspecialchars | max|u length[30]| xss|u clean');
$this->form_validation->set_rules('email'、'email Address'、'trim | valid| email | required | htmlspecialchars | max|u length[100]| xss|u clean');
$this->form|u validation->set|u rules('message'、'message'、'trim | required | htmlspecialchars | xss|u clean');
$this->form_validation->set_error_分隔符(“&bull;”,”);
如果($this->form\u validation->run()==FALSE){
$data['success']='';
$data['page_title']='Contact';
$data['content']='contact';
$this->load->view('template',$data);
}否则{
$data['success']=“电子邮件已成功发送”;
$data['name']=$this->input->post('name');
$data['email']=$this->input->post('email');
$data['message']=$this->input->post('message');
$html\u email=$this->load->view('html\u email',$data,true);
//加载电子邮件类
$this->load->library('email');
$this->email->from(设置值('email')、设置值('name');
$this->email->to('emailAddressUsualyHere');
$this->email->subject(“来自网站的消息”);
$this->email->message($html\u email);
$this->email->send();
$data['success']=“电子邮件已成功发送”;
$data['page_title']='Contact';
$data['content']='contact';
$this->load->view('template',$data);
}
}

已解决:在联系人控制器中,我有一个带有页面位置的函数索引,然后是一个单独的函数,名为函数send\u mail。我删除了send_mail功能,并将代码上移到index功能,当发送电子邮件或返回错误消息时,它将url保持为/contact not/contact/send_mail,现在下拉菜单开始工作!当然,在我的联系人视图中,我更改了echo form_open(“联系人/发送电子邮件”);回显表格_open(“contact”)

nav ul     { display: none; }
nav select { display: inline-block; }
public function send_email (){

        $this->load->library('form_validation');

        $this->form_validation->set_rules('name','Name','trim|required|htmlspecialchars|max_length[30]|xss_clean');
        $this->form_validation->set_rules('email','Email Address','trim|valid_email|required|htmlspecialchars|max_length[100]|xss_clean');
        $this->form_validation->set_rules('message','Message','trim|required|htmlspecialchars|xss_clean');

        $this->form_validation->set_error_delimiters('<div id="errors">&bull;&nbsp;','</div>');

        if ($this->form_validation->run() == FALSE) {
            $data['success'] = '';
            $data['page_title'] = 'Contact';
            $data['content'] = 'contact';
            $this->load->view('template', $data);

        }else{

            $data['success'] = 'The email has successfully been sent';
            $data['name'] = $this->input->post('name');
            $data['email'] = $this->input->post('email');
            $data['message'] = $this->input->post('message');

            $html_email = $this->load->view('html_email', $data, true);

            //load the email class
            $this->load->library('email');

            $this->email->from(set_value('email'), set_value('name'));
            $this->email->to('emailaddressusuallyhere');
            $this->email->subject('Message from Website');
            $this->email->message($html_email);

            $this->email->send();

            $data['success'] = 'The email has successfully been sent';
            $data['page_title'] = 'Contact';
            $data['content'] = 'contact';   
            $this->load->view('template', $data);
        }
    }