Передача данных из представления в контроллер с использованием шаблона Smarty - PullRequest
0 голосов
/ 29 мая 2018

Я скачал приложение, и оно написано с использованием SMARTY TEMPLATE ENGINE .Я пытаюсь создать поисковую систему с выпадающим предложением.

HTML-код:

<input type="text" placeholder="{$_L['Search']}" id="txtsearch">

<div id="filter"></div> 

Javascript:

 $( "#txtsearch" ).keyup(function() {
  if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0){  
  filter = document.getElementById('filter').style.display="block";  

  userInput = encodeURIComponent(document.getElementById("txtsearch").value);  

 var _url = $("#_url").val();
 var urlsuggest = _url + 'ps/auto-suggest?userInput='+userInput;

  xmlHttp.open("GET", urlsuggest, true);  

  xmlHttp.onreadystatechange = handleResponse;  
  xmlHttp.send(null);  
  }else{  
  } 
});

Контроллер

  if(isset($_GET['userInput'])){
   $value = $_GET['userInput']; //assign the value
  }else{
   echo "no input";
  }

  $getdata = ORM::for_table('sys_items')->where_like('name',"%$value%")->order_by_asc('name')->find_many();

Проблема в том, что переменная $value в контроллере не получает значение, которое передается в var urlsuggest в сценарии java.Когда я добавляю значение по умолчанию в переменную $value, например, $value="PRC" и изменяю var urlsuggest на _url + 'ps/auto-suggest', код работает нормально, и он показывает все данные со словом "PRC" в фильтре div.

Как передать значение поля ввода в переменную $value в моем контроллере?Любая помощь будет оценена.Спасибо.

1 Ответ

0 голосов
/ 29 мая 2018

Вы должны использовать rawurldecode (), потому что вы кодируете с помощью encodeURIComponent.См. Руководство

...