2015-05-28 2 views
0

У меня есть кнопка в моем внешнем js-файле, который при щелчке я хочу отправить на контроллер, который у меня есть. Когда у меня есть функция on click в JQuery с URL-адресом, установленным для моего localhost, он отлично работает, но как я могу установить его так, чтобы он работал аналогично тому, как base_url работает в CodeIgniter, чтобы он работал в любой среде ? Я пробовал использовать window.location.origin или window.location.host вместо localhost, но не работал. Есть идеи?Репликация base_url во внешнем JS-файле в CodeIgniter

Моя внешняя кнопка JS:

var html = '<div class="alert alert-success" role="alert"><p class="instruction_text text-center">' + completedText + '</p></div><input id="next_task" class="btn btn-lg btn-default text-center" style="margin-top: 150px; font-weight: bold;" type="button" value="' + text[lang]['continue'] + '"data-url="http://localhost:8888/oda/sample/instructions/' + task_id + '/' + lang + '/' + type + '">'; 

$('#final_message').append(html); 

$(document).on('click', '#next_task', function(e) { 
    e.preventDefault(); 
    location.href = $(this).data('url'); 
}); 

Спасибо!

+0

вы определили значение для base_url на приложение/Config/config.php или его automatcally генерируется? – emiliopedrollo

ответ

1

Вы можете оставить эту работу в браузере. Если страница находится в том же домене, что вам не нужно ставить его пространно на вашем коде, вы можете поставить что-то вроде этого:

'"data-url="/oda/sample/instructions/' + task_id + '/' + lang + '/' + type + '"' 

к сведению, что / о начале говорит, что он всегда будет добраться до в том же месте, не обращайте внимания на текущий URL.

Но, если вам нужно по какой-либо причине написать полный URL-адрес, то window.location.origin не будет включать порционную часть вашего URL-адреса, вам также необходимо включить window.location.port, чтобы он работал с вашей средой. и это не обязательно делать в производстве. window.location.host должен работать, если вы поставите http:// и / на вашей строке:

'"data-url="http://' + window.location.host + '/oda/sample/instructions/' + task_id + '/' + lang + '/' + type + '"' 
+1

Такое легкое исправление. Я делал это слишком сложно. Спасибо за вашу помощь! – jldavis76

1

Вы можете определить значение base_url переменной JS в зрения и включают в себя все внешние JS ниже этой

Здесь я привожу часть примера head.php, который находится в/your_root/приложения/просмотров

<script> 
var base_url = "<?php echo base_url(); ?>"; 
</script> 
Смежные вопросы