2013-07-09 2 views
0

Я думаю, что у меня есть общая проблема маршрутизации.Маршрутизация с помощью JS на странице-странице

Посмотрите, что я получил. У меня есть страница с Paginator. в то время, когда я вхожу на страницу, у меня есть такой URL-адрес: «host/OnlineBanking/session_details/session_id: xxxxxx».

Если я использую Paginator я получил что-то вроде этого "хозяина/OnlineBanking/session_details/session_id: XXXXXX/страница: 2"

Тем не менее легко понять.

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

  $.ajax({ 
       type: 'POST',        
       url: "../get_backend_requests",     
       data: "request_id="+request_id,     
       dataType: "html", 
       success :function(html){       
        element.append(html);  
       }    
      }); 

Таким образом, проблема, если я определить URL, как я делает там я отработан с первым URL я отправил первый. Но второй URL-адрес с параметром page отображает полный макет без тех данных, которые я хочу иметь. В действии, которое я вызываю из JS, у меня установлено значение autoRender равным false, поэтому проблема не может быть проблемой.
Я использовал Firebug, чтобы выяснить, что произойдет, и проблема в том, что JS просто добавляет действие для вызова предыдущего. Таким образом, URL-адрес выглядит так: «OnlineBanking/session_details/get_backend_requests». Поэтому я могу исправить эту проблему, используя этот «url:» ../../get_backend_requests »в ajax, но затем URL-адрес без/page: 2 больше не работает, потому что он пытается использовать и действовать как контроллер.

Может кто-нибудь дать мне подсказку, чтобы решить эту проблему.

Большое спасибо!

ответ

0

лучше бы объявить константу в bootstrap.php

define('HTTP_HOST', "http://" . $_SERVER['HTTP_HOST'].'/'); 
define('SITE_URL', HTTP_HOST.'your_project_dir_name_if_any/'); 

И использование он выглядит следующим образом:

$.ajax({ 
      type: 'POST',        
      url: "<?php echo SITE_URL.'controller_name/get_backend_requests';?>",     
      data: "request_id="+request_id,     
      dataType: "html", 
      success :function(html){       
       element.append(html);  
      }    
     }); 
+0

Таким образом, не существует способа изменить поведение отображения URL-адреса? Итак, если я вызываю get_backend_requests-Action из JS, что параметр из пейджера, например, игнорируется и вырезается? – user2140111

+0

Я имею в виду, что это не нормально, что Get-параметры отображаются, например, как:/page: 5. Я подумал, что это правильно, например, Controller/action? Param1 = help & param2 = me & param3 = out. – user2140111

+0

Эта ссылка может помочь вам изменить действие URL: http://stackoverflow.com/questions/17506287/want-to-remove-action-name-from-url-cakephp –

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