我是symfony2的新手,我需要一些指导来解决一件事。
我有一个输入文本和一个包含数据库数据的表。
我希望当用户在输入文本中键入文本时,会使用数据库中的新数据重新加载表。
我希望从控制器调用的功能:
public function reloadCountryAction($name){
$em = $this->getDoctrine()->getEntityManager();
$qb = $em->createQueryBuilder();
$qb->select("*")
->from("COUNTRY","p")
->where("p.COUNTRYNAME like '%:identifier%'")
->setParameter('identifier', $name);
return $qb->getArrayResult();
}
输入用户将键入要搜索的项目的文本:
<input type="search" id="searchCountry" >
第一次提供表格的功能:
public function countryListAction() {
$usr = $this->get('security.context')->getToken()->getUser();
$allCountry = $this->getDoctrine()
->getRepository('backendentityBundle:Country')
->findAll();
return $this->render('backendcountryBundle:Default:countryFirst.html.twig', array('sessionname' => $usr->getUsername(),
'allCountry' => $allCountry));
}
和我要重新加载的表:
<table id="selectableTableCountry">
{% for country in allCountry %}
<tr id="rowtable" class="ui-widget-content">
<td>
<p class="txtCountryName">{{ country.countryname}}</p>
</td>
</tr>
{% endfor %}
</table>
由于
答案 0 :(得分:0)
这不是关于symfony的问题,而是我认为的javascript。
你应该在输入#searchCountry上监听(例如onkeyup)并执行ajax来路由调用reloadCountryAction并呈现新表<table id="selectableTableCountry">...</table>
。只需在当前DOM中更改它。
答案 1 :(得分:0)
这是javascript问题,而不是symfony。 您应该使用ajax调用从数据库重新加载数据,或者只在元素上触发unfocus时发布它。