2016-07-19 3 views
-2

Я использую JQuery для проверки для простой формы, которая имеет два выбираетJQuery удаленной проверки проверки

1 месяца (с перечислением названий месяцев и значение номер месяца)

2 лет (с 2016- 2022)

Я хочу проверить с выбранного месяца и года, есть ли в базе данных запись, Таблица Mysql имеет отдельный стол месяца и года.

Например:

Как я могу проверить января 2016 уже в базе данных с использованием дистанционной регистрации?

remote.php является

$inspection_month = $_POST['sm']; 
$inspection_year = $_POST['sy']; 

$check_for_the_report = $db->single("SELECT id FROM dg_inspection_forms WHERE inspection_month = :sm AND inspection_year = :sy ",array("sm"=>"$inspection_month","sy"=>"$inspection_year")); 

if($check_for_the_report){ 
    echo "false"; 
} else { 
    echo "true"; 
} 

Валидации формы часть:

$('.btn-new-inspection-report-save').on('click', function(e){ 
    e.preventDefault(); 

    $("#newInspectionReportFormStep1").validate({ 
     highlight: function(element) { 
      $(element).closest('.form-group').addClass('has-error'); 
     }, 
     unhighlight: function(element) { 
      $(element).closest('.form-group').removeClass('has-error'); 
     }, 
     errorElement: 'span', 
     errorClass: 'help-block', 
     errorPlacement: function(error, element) { 
      if(element.parent('.input-group').length) { 
       error.insertAfter(element.parent()); 
      } else { 
       error.insertAfter(element); 
      } 
     } 
    }); 

    if($('#newInspectionReportFormStep1').valid()) { 

     //Check if there is already a report for the selected Month and Year for that clinic 
     var sm = $('.new_inspection_month').find(':selected').data('fid'); 
     var sy = $('.new_inspection_year').find(':selected').data('yid'); 
     var flag = true; 

     $.ajax({ 
      type: "POST", 
      url: '/apps/reports/check-for-previous-reports.php', 
      data: {sm:sm,sy:sy}, 
      success: function(data) { 
       if (data === 'false') { 
        bootbox.alert("There is record for the selected month and year"); 
        flag = false; 
       } 
      } 
     }); 

     if(flag === false){ 
      return flag; 
      e.preventDefault(); 
     } else { 

      $('.loading').show(); 

      $.ajax({ 
       type: "POST", 
       url: '/apps/reports/new-inspection-report-step1-save.php', 
       data: $("#newInspectionReportFormStep1").serialize(), 
       success: function(data) { 

        $('#generateNewInspectionReportStep1').modal('hide'); 

        var appModal = $('#generateNewInspectionReportStep2').modal('show'); 
         appModal.load("/apps/reports/new-inspection-report-step2.php?report_id="+data+""); 

        $('.loading').hide(); 
       } 
      }); 
     } 
    } 
}); 
+0

Я ничего здесь не вижу о jQuery Validate. Пожалуйста, используйте только тег [tag: jquery-validate], когда спрашиваете о плагине jQuery Validate. Ред. Благодарю. – Sparky

ответ

0

Вам нужен отдельный файл PHP, что база данных процесса для вас

Ajax PHP файл должны выглядеть следующим образом:

<?php 
if(isset($_POST['month'])){ 
    //Connect to database 
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db"); 

    if (!$link) { 
     echo "Error: Unable to connect to MySQL." . PHP_EOL; 
     echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; 
     echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; 
     exit; 
    } 

    $result = mysqli_query($link, "SELECT * FROM table_name WHERE Month=".$_POST['month']." AND Year=".$_POST['year']); 
    $row_count = mysqli_num_rows($result); 

} 
$arr = array(); 
$arr['row_count'] = $row_count; 
echo json_encode($arr); 
exit; 

И функция JQuery:

function check_form(){ 
    var monthx = $("#id_of_month_input").val(); 
    var yearx = $("#id_of_year_input").val(); 
    $.ajax({ 
     type: "POST", 
     url: "url_to_your_ajax.php", 
     data: { month: monthx, year: yearx}, 
     cache: false, 
     success: function(data){ 
      var arr = $.parseJSON(data); 
      var row_count = arr['row_count']; 
     } 
    }); 
} 
+0

Ваш код почти такой же, как у меня, однако в моем коде все нормально, но если данные успеха ложны, он не возвращает false. – adams

+0

Проверьте правильность вашего URL-адреса, потому что если успех не соответствует действительности, это означает, что они не могут найти файл, либо ошибка в файле. Попробуйте открыть файл в самом браузере и увидите, что он дает какие-либо ошибки – Imphusius

Смежные вопросы