как вызвать контроллер из метода javascript? - PullRequest
0 голосов
/ 19 июня 2020

вот мой код javascript:

function find_country(){

        var country_name = document.getElementById('searchBox');
        if(country_name == "")
    window.location.href = "https://localhost/teacherprivate";
        if(country_name != "")
    window.location.href = "<?php echo base_url('country-');?>"+country_name;
    }

а вот мой маршрут:

$route['country-([a-zA-Z_-]+)']='Countries/get_countries_by_searchword/$1/$2';

что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 20 июня 2020
$route['country-([a-zA-Z_-]+)']='Countries/get_countries_by_searchword/$1/$2';

этот маршрут не имеет переменных данных для отправки через $ 1 / $ 2

Но вы можете изменить структуру ссылок на:

window.location.href = "<?php echo base_url('country/');?>"+country_name;

, тогда этот маршрут будет комбинированным будет работать:

$route['country']='countries/get_countries_by_searchword';
$route['country/(:any)']='countries/get_countries_by_searchword/$1';

Первый охватывает случаи, когда нет значения country_name , второй отвечает на country_name со значением.

в странах вашего контроллера. php функция get_countries_by_searchword () переменная $country соответствует $1. Вы пишете это так:

get_countries_by_searchword($country=''){
  if($country){
    // do something with $country
  }else{
    // handle empty $country 
  }
}

Информация о Codeigniter Uri Routing

0 голосов
/ 19 июня 2020

Если вам нужно сделать запрос на localhost, используйте http://, а не https://. вы также можете просто запросить /teacherprivate, который сообщает браузеру повторно использовать протокол и имя хоста.

вам также необходимо включить этот прямой sla sh в случае, когда имя страны не пустое, поэтому

window.location.href = "<?php echo base_url('county-');?>"+country_name;

становится

window.location.href = "<?php echo base_url('/country-');?>"+country_name;

, а window.location.href = "https://localhost/teacherprivate"; становится window.location.href = "/teacherprivate";

Кроме того, вы сохраняете сам элемент документа, вам нужно его значение: "+country_name.value;

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