在codeigniter

时间:2016-09-19 12:16:39

标签: php forms codeigniter validation url

当我提交此表单时,所有内容都很好但我希望控制器功能不在url中显示。我希望所有的事情都在同一页面上完成。网址显示

localhost/Naveen/CodeIgniter/welcome/insertform

但我不想在网址中使用form_open('')节目,以便如何实现?

controller welcome.php

public function insertform()
{
    if (isset($_POST['mysmt']))
    {
        $this->form_validation->set_rules('fname', 'Name', 'required');
        $this->form_validation->set_rules('femail', 'Email', 'trim|required|valid_email');
        $this->form_validation->set_rules('fmobile', 'Mobile', 'required');
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view('welcome_view');
        }
        else
        {
            $_POST['fname'];
            $_POST['femail'];
            $_POST['fmobile'];
            if($this->test_model->insert('user_accounts',array('',$_POST['fname'],$_POST['femail'],$_POST['fmobile'])))
            {
                $success['success']="Thanks For Join Us";
                $this->load->view('welcome_view',$success);
            }
        }
    }
    else
    {
        $this->load->view('welcome_view');
    }
}

查看welcome_view.php

<?php echo form_open('welcome/insertform'); // ?>
    <div class="form-group">
    <?php 
    if(isset($success))
    {?>
        <input type="button" class="form-control btn-success" value="<?php echo $success; ?>">
<?php }
    else
    {
        echo "";
    }?>
    </div>
    <div class="form-group">
      <label class="control-label" for="focusedInput">Name <?php echo form_error('fname'); ?></label>
      <?php
      $entername = array(
          'name'        => 'fname',
          'value'       => '',
          'maxlength'   => '100',
          'placeholder' => 'Enter Name',
          'class'       => 'form-control',
        );
      echo form_input($entername); ?>
    </div>
    <div class="form-group">
      <label class="control-label" for="focusedInput">Email <?php echo form_error('femail'); ?></label>
      <?php
      $enteremail = array(
          'name'        => 'femail',
          'value'       => '',
          'maxlength'   => '100',
          'placeholder' => 'Enter Email',
          'class'       => 'form-control',
        );
      echo form_input($enteremail); ?>
    </div>
    <div class="form-group">
      <label class="control-label" for="focusedInput">Mobile <?php echo form_error('fmobile'); ?></label>
      <?php
      $entermobile = array(
          'name'        => 'fmobile',
          'value'       => '',
          'maxlength'   => '100',
          'placeholder' => 'Enter Mobile',
          'class'       => 'form-control',
        );
      echo form_input($entermobile); ?>
    </div>
    <div class="form-group">
    <?php
      $f_formsmt = array(
          'name'        => 'mysmt',
          'value'       => 'Submit Form',
          'class'       => 'form-control btn btn-success',
        );
      echo form_submit($f_formsmt); ?>
    </div>
    <?php echo form_close(); ?>

3 个答案:

答案 0 :(得分:0)

您可以通过applications / config / routes.php

处理它

考虑你的网址:localhost/Naveen/CodeIgniter/welcome/insertform

$route['add'] = 'welcome/insertform';

现在您可以使用localhost/Naveen/CodeIgniter/add

您可以使用路线更改任何控制器/功能所需的字符串。

希望你明白:)

答案 1 :(得分:0)

您需要在路线中添加网址并添加指向链接的链接

在route.php中添加:

$route['custom_url'] = 'controller/method';

答案 2 :(得分:0)

我使用了Header("location:../{whatever-filename}")

然后给了#34;无论文件名&#34; config / routes.php中的正确路由。

不使用重定向功能进行路由会加载相应的页面,但网址仍会显示您正在使用的控制器和方法。

希望有所帮助