Advertisement
amran_87

Update function - Search Solicitor

Apr 15th, 2020
2,242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 3.35 KB | None | 0 0
  1. /* Copy dan paste code di bawah ke file:
  2. *  ppsis/public/js/functions.js        
  3. */
  4.  
  5. $(document).ready(function() {
  6.     let financing_form = $('#financing_form');
  7.     let alert_message = $('#financing_form .alert');
  8.     // solicitor name input
  9.     let search_solicitors = $('#solicitors');
  10.     // div utk keluarkan result list nama solicitors
  11.     let solictors_result = $('.solictors_result');
  12.     // dapatkan alamat current url
  13.     let url = window.location.href;
  14.     // tukar pada bentuk array
  15.     // cth: http://ppsis:8080/restructures/1/edit
  16.     // [http, ,ppsis:8080, restructures, ...]
  17.     let url_array = url.split('/');
  18.     let input_types = $('.types');
  19.     console.log(url_array[3]);
  20.  
  21.     // input value mengikut menu yg dipilih. Sekiranya ingin buat nama lain,
  22.     // boleh gunakan if..else utk define value tersebut.
  23.     // if (url_array[3] === 'financings') {
  24.         // input_types.val('FIN');
  25.         input_types.val(url_array[3]);
  26.     // }
  27.  
  28.     $('#financing_form .alert').hide();
  29.  
  30.     financing_form.submit(function(e) {
  31.         e.preventDefault();
  32.         let form_url = $(this).attr('action');
  33.         let form_method = $(this).attr('method');
  34.         alert_message.removeClass('alert-danger alert-success');
  35.         alert_message.show();
  36.  
  37.         $.ajax({
  38.             // url: '/financings',
  39.             // type: 'POST',
  40.             url: form_url,
  41.             type: form_method,
  42.             dataType: 'json',
  43.             data: financing_form.serialize()
  44.         })
  45.         .done(function(data) {
  46.             alert_message.addClass('alert-success');
  47.             $('.alert.alert-success').html('Success add data');
  48.             $('.modal').animate({scrollTop: '11px'}, 500);
  49.             console.log(data);
  50.         })
  51.         .fail(function(data) {
  52.             alert_message.addClass('alert-danger');
  53.             let errors = data.responseJSON.errors;
  54.             let error_msg = "";
  55.             console.log("error: ");
  56.             console.log(errors);
  57.            
  58.             for(let error in errors){
  59.                 console.log(errors[error]);
  60.                 error_msg += '<li>' + errors[error] + '</li>';
  61.             }
  62.  
  63.             $('.alert.alert-danger').html("<ul>" + error_msg + "</ul>");           
  64.             $('.modal').animate({scrollTop: '11px'}, 500);
  65.         })
  66.         .always(function() {
  67.             console.log("complete");
  68.         });
  69.     });
  70.  
  71.     // function untuk search nama soicitor
  72.     search_solicitors.keyup(function(){
  73.         solictors_result.html("");
  74.         let key_type = $(this);
  75.         let  solictors_result_list = "";
  76.         console.log(key_type.val().length);
  77.  
  78.         // lebih drp 1 huruf akan keluar result
  79.         if (key_type.val().length > 1) {
  80.             // ajax function get (shortcut drp AJAX)
  81.             // url ada variable yg mengandungi window.location.href atau current url  
  82.             $.get(url,
  83.             {
  84.                 // data yg dihantar ke backend
  85.                 solicitor: key_type.val()
  86.             }, function(data) {
  87.                 console.log(data.solicitor);
  88.                 // loop setiap row dan object
  89.                 $.each(data.solicitor, function(index, obj) {
  90.                     solictors_result_list += "<li class='list-group-item'>" + obj['DESCRIPTION'] + "</li>";
  91.                 });
  92.                 // display result dalam bentuk list
  93.                 solictors_result.html('<ul class="class="list-group">' + solictors_result_list + '</ul>');
  94.             });
  95.         }
  96.     });
  97.  
  98.     // function utk user click pada list dan display ke value input
  99.     $(document).on('click', '.list-group-item', function(){
  100.         search_solicitors.val($(this).text());
  101.         solictors_result.html("");
  102.     });
  103.  
  104.     // bila user off focus input search_solicitors, result nama solicitor akan hilang
  105.     $(document).on('focusout', search_solicitors, function(){
  106.         window.setTimeout(function(){
  107.             solictors_result.html("");
  108.         }, 200);
  109.     });
  110. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement