【问题标题】:Passing data from view to controller using Smarty template使用 Smarty 模板将数据从视图传递到控制器
【发布时间】:2018-05-29 13:52:58
【问题描述】:

我下载了一个应用程序,它是使用 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 变量没有获取在java 脚本中var urlsuggest 中传递的值。当我在$value 变量中添加默认值(例如$value="PRC")并将var urlsuggest 更改为_url + 'ps/auto-suggest' 时,代码工作正常,它将在过滤器div 中显示所有带有“PRC”字样的数据。

如何将输入字段的值传递给控制器​​中的$value 变量?任何帮助,将不胜感激。谢谢。

【问题讨论】:

    标签: javascript php smarty


    【解决方案1】:

    您应该使用 rawurldecode(),因为您正在使用 encodeURIComponent 进行编码。 见Manual

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2018-06-28
      • 2020-06-08
      相关资源
      最近更新 更多