Bu yazıda symfony de text field e veri yazarken o veri daha önce eklenmiş onu kontrol etmenizi sağlayan eklentiyi paylaşıyorum.
İşlem yapacagınız bölümler:
- Routing
- Conroller
- Views
bu üç dosyada işlem yapacaksınız.
Öncelikle controller oluşturmanız gerekiyor. ismi AjaxController.php olsun içeriği
<?php namespace Web\AdminBundle\Controller; use Symfony\Component\HttpFoundation\Response; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; /** * Ajax controller. * */ class AjaxController extends Controller { public function otel_kontrolAction(Request $request) { $em = $this->getDoctrine()->getManager(); $otel_ad = $request->get('kayitli'); $otel = $em->getRepository("WebAdminBundle:Otel")->findOneBy(array('ad'=>$otel_ad)); $sonuc = array(); if($otel) { $otel_url = $this->generateUrl('otel_show',array('id'=>$otel->getId())); $sonuc['durum'] = 0; $sonuc['html'] = 'Kayitli Otel gitmek için <a href="'.$otel_url.'">tıklayınız</a>'; } else { $sonuc['durum'] = 1; $sonuc['html'] = ''; } return new Response(json_encode($sonuc)); } }
Sonrasında routing dosyası oluşturalım ismi ajax.yml olsun.
ajax_otelkontrol: path: /otelkontrol defaults: { _controller: "WebAdminBundle:Ajax:otel_kontrol" }
Routing.yml dosyasına girelim. aşagıdaki kodu ekliyelim.
web_admin_ajax: resource: "@WebAdminBundle/Resources/config/routing/ajax.yml" prefix: /ajax
Sonrasında ilgili tiwg dosyasına gidiyoruz.
{{ form_start(form) }}
hemen altına
{{ form_row(form.ad) }} <div id="sonuc"></div>
burada form.ad kendinize göre yani aratacagınzı veriye göre düzenlemeniz gerekiyor.
endblock altına girip.
{% block script %} <script> $(document).ready(function () { $('#web_adminbundle_otel_faturaNumarasi').keyup(function () { fatura_kontrol($(this).val()); }); $('#web_adminbundle_otel_ad').focusout(function () { fatura_kontrol($(this).val()); }); $('#web_adminbundle_otel_ad').change(function () { fatura_kontrol($(this).val()); }); }); function fatura_kontrol(deger) { veriler = 'kayitli='+deger; $.post('{{ path('ajax_otelkontrol') }}',veriler,function (sonuc) { $('#sonuc').html(sonuc.html); },'json'); } </script> {% endblock %}
kodunu ekliyorsunuz web_adminbundle_otel_ad kısmını oradaki verinize göre çekiyorsunuz.
İlgili Dosyaları indir:
http://www.tasarimrehberi.net/download/217/