2015-09-03 3 views
0

Я только начал использовать Code Igniter framework, а также только начал изучать PHP OOP. Я натолкнулся на что-то при кодировании форм.Лучший способ для действия формы?

В форме, если у меня есть две кнопки, которые приведут к разным страницам, каким будет наиболее подходящий способ сделать это? Я нашел два пути. Во-первых, чтобы иметь динамический действие/связь, давайте назовем его метод A:

Метод A

переменной $ form_link является "form_link.

(View) main_user_view.php

<?php echo form_open($form_link); ?> 
<?php echo form_button($add_user_button); ?> 
<?php echo form_button($delete_user_button); ?> 
<?php echo form_close(); ?> 

(контроллер) User.php

public function form_link() 
{ 
    // Value of button clicked 
    $form_submitted = $this->input->post('submit_form'); 

    if($form_submitted == 'add_user') 
    { 
     redirect('User/add_user'); 
    } 
    elseif($form_submitted == 'delete_user') 
    { 
     redirect('User/delete_user'); 
    } 
    elseif($form_submitted == 'back') 
    { 
     redirect('User'); 
    } 
} 

И другой путь вместо того, чтобы иметь вторую кнопку я хотел бы использовать якорь и сделать абсолютное путь для него.

Метод B

Переменная $ form_link является 'add_user', которая является функцией в контроллере.

(View) main_user_view.php

<?php echo form_open($form_link); ?> 
<?php echo form_button($add_user_button); ?> 
<?php echo anchor('add_delete_user/delete_users_view', 'Delete', array('class'=>'btn btn-info', 'role'=>'button'));?> 
<?php echo form_close(); ?> 

Единственная проблема у меня с методом А в том, что если в форме у меня есть поля ввода, я не могу получить данные через POST в redirect не несет над данных к другим функциям. Я решил, что с помощью метода B, где якорь приведет к функции, я хочу, чтобы я мог получить данные POST.

Так что мой главный вопрос: следует ли использовать метод B, если у меня есть две или более кнопки в форме?

ответ

0

Что мое мнение также использовать метод B. Чтобы сделать URL более лучше вы можете использовать пользовательский маршрут (который находится в «application/config/routes.php»)

+0

Зачем вам использовать метод B? Мне нужно какое-то объяснение. – hzq

1

Вы должны использовать имена кнопок для формы почтовых действий,

public function form_link() 
{ 
    if($this->input->post('add_user')) 
    { 
     redirect('User/add_user'); 
    } 
    if($this->input->post('delete_user')) 
    { 
     redirect('User/delete_user'); 
    } 
} 
+0

Хотя это не часть моего вопроса, спасибо за это. Возникла проблема с IE 10, где он не будет загружаться. Однако главный вопрос заключается в том, какой из методов (который я сказал выше) был бы лучшим? – hzq

+0

Умный способ - метод B. Для метода A вы должны различать действия post формы. Метод B, вам не нужно указывать действие формы. – Gayathri

Смежные вопросы