脚本宝典收集整理的这篇文章主要介绍了php – Symfony2 – Ajax搜索,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
JS
$('#seArch').keyup(function() { searchText = $(this).val(); $.ajax({ tyPE: "GET",url: "/Apana/web/app_dev.PHP/search",dataType: "json",data: {searchText : searchText},success : function(response) { console.LOG(response); } }); });
控制器
use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\Encoder\XMlEncoder; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer; use Apana\Bundle\MainBundle\EntITy\User; class SearchController extends Controller { public function liveSearchAction(Request $request) { $string = $this->getRequest()->request->get('searchText'); //$string = "alfa"; $users = $this->getDoctrine() ->getRepository('ApanaMainBundle:User') ->findByLetters($string); //return users on JSON format $encoders = array(new XMLEncoder(),new JsonEncoder()); $normalizers = array(new GetSetMethodNormalizer()); $serializer = new Serializer($normalizers,$encoders); $jsonContent = $serializer->serialize($users,'json'); $response = new Response($jsonContent); return $response; } }
用户存储库
class UserRepository extends EntityRepository { public function findByLetters($string){ return $this->getEntityManager()->createQuery('SELECT u From ApanaMainBundle:User u WHERE u.Firstname LIKE :string OR u.lastname LIKE :string') ->setParameter('string','%'.$string.'%') ->getResult(); } }
如果我为我的字符串参数提供静态文本并访问控制器的路由,它可以正常工作.
$.ajax({ type: "GET",[...]
至
$.ajax({ type: "POST",[...]
你可能实际上没有得到GET参数并不奇怪:How to get the request parameters in symfony2
public function updateAction(Request $request) { // $_GET parameters $request->query->get('name'); // $_POST parameters $request->request->get('name');
以上是脚本宝典为你收集整理的php – Symfony2 – Ajax搜索全部内容,希望文章能够帮你解决php – Symfony2 – Ajax搜索所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。