PHP / codeigniter: ссылка не работает при нажатии, но хорошо, если открывается в новой вкладке - PullRequest
0 голосов
/ 03 июля 2010

На одной конкретной странице у меня есть кнопка, которая переключает определенное поле в БД. Функция

 function source_toggle_paid($event_id = null, $attendee_id = null)
{
    $this->authentication->checkLogin(); // Check if the user is logged in

    // Check the parameters provided are null
    if ($attendee_id == null || $event_id == null)
    {

        // If either attendee or event ids given are null, give an error message
        $data = array(
                        'type' => 'error',
                        'message' => $this->message_list->get('DOES_NOT_EXIST', 'attendee') . ' ' . $this->message_list->get('BACK_TO_SOURCE_HOME')
        );

        // Output the error message

        $this->load->view('template/main_header');
        $this->load->view('template/message', $data);
        $this->load->view('template/main_footer');  

    }
    else    // Otherwise, parameters are not null
    {


        //Load the attendee model, and toggle the paid status of the attendee
        $this->load->model('Attendee');
        $this->Attendee->toggle_field('paid',$attendee_id);
        //Redirect the user back to the attendees page, with the used search term
        redirect('admin/source_attendees/'.$event_id);
                    //redirect('admin/source_attendees/'.$event_id);


    }
}

Когда я нажимаю кнопку, я перенаправляюсь на страницу 404, и значение dp остается неизменным, при дальнейшей игре я обнаружил, что функция никогда не достигается. Однако, если я ввожу URL-адрес вручную, он работает, и если я щелкаю правой кнопкой мыши и открываю в новой вкладке, он тоже работает

1 Ответ

0 голосов
/ 04 июля 2010

как выглядит файл маршрутов?У меня возникла проблема, которая выглядела аналогично, и я позаботился об этом с настройками route.php, вам нужно добавить что-то вроде

$route['....source_toggle_paid/(:any)'] = "....source_toggle_paid";

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

$event_id = $this->uri->segment(3); $attendee_id = $this->uri->segment(4);

, чтобы убедиться, что вы изменили сегмент URI на правильные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...