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/