Ajax сообщение с php - mysql не работает должным образом - PullRequest
0 голосов
/ 18 января 2020

Мне нужен ajax вызов для отправки данных в базу данных, извлечения данных из базы данных и обновления в режиме реального времени. У меня есть следующие коды HTML Форма

 <div class="hover_bkgr_fricc">
        <span class="helper"></span>
        <div>
            <div class="popupCloseButton">&times;</div>
            <p>
                <form>
                    <input type="hidden" name="check_num" value="123" />
                    <p>Please provide more details</p>
                    <input type="text" name="reason" />
                    <a id="submit">Mark Reviewed</a>

                </form>
            </p>
        </div>
    </div>

    <b id="review_result"></b>

    <a class="trigger_popup_fricc">
        <button> Mark Reviewed</button>

    </a>

Javascript Блок

$(document).ready(function() {
            $(".trigger_popup_fricc").click(function() {
                $('.hover_bkgr_fricc').show();
            });
        $('.popupCloseButton').click(function() {
            $('.hover_bkgr_fricc').hide();
        });

        $('#submit').click(function() {
            var check_num = $('input[name=check_num]').val();
            var reason = $('input[name=reason]').val();

            var form_data =
                'check_num=' + check_num +
                '&reason=' + reason;
            $.ajax({
                url: "loweslinkprocess.php",
                type: "POST",
                data: form_data,
                success: function(html) {
                    //if process.php returned 1/true (send mail success)
                    if (html == 1) {
                        //hide the form
                        $('.hover_bkgr_fricc').fadeOut('slow');
                        $('#review_result').html(data);
                    } else alert('Sorry, unexpected error. Please try again later.');
                }
            });

        });

И блок php

$link = mysqli_connect($HOST, $USER, $PWD, $DB_NAME);


    $check_num = $_POST['check_num'];
    $reason = mysqli_real_escape_string($link, $_POST['reason']);

    $insert = mysqli_query($link, "INSERT INTO `vloer_paylink_reason` (`id`, `check_number`, `reason`) VALUES (DEFAULT, '$check_num', '$reason')");
    $update = mysqli_query($link, "UPDATE vloer_paylink SET reviewed = 1 WHERE check_number ='$check_num'");

    $get_check_data = mysqli_query($link, "SELECT reviewed FROM vloer_paylink WHERE check_number = '$check_num'");
    $check_data = mysqli_fetch_array($get_check_data);
    if($check_data['reviewed']==1){
        echo "Reviewed done";
    } 
    else {
         echo "Not Reviewed done";
    }

Данные вставляются и обновление базы данных, но после этого не возвращается к html update. Возвращается значение false (извините, неожиданная ошибка. Повторите попытку позже.)

Ответы [ 2 ]

1 голос
/ 18 января 2020

Добавьте .error : function(e){ console.log(e)} к вашему ajax вызову, чтобы вернуть ошибку.

Функция будет:

$.ajax({
    url: "loweslinkprocess.php",
    type: "POST",
    data: form_data,
    success: function(data) { 
        if(data == "Reviewed done"){ 
          // code goes here 
        }
     },
    error : function(e) { console.log(e)} // this will print error
});
0 голосов
/ 18 января 2020

Вы отправляете Reviewed done или Not Reviewed done в коде php в качестве ответа. Измените код javascript, как показано ниже.

$.ajax({
  url: "loweslinkprocess.php",
  type: "POST",
  data: form_data,
  success: function(response) {
    //if process.php returned 1/true (send mail success)
    if (response === "Reviewed done") {
      //hide the form
      $(".hover_bkgr_fricc").fadeOut("slow");
      $("#review_result").html(response);
    } else alert("Sorry, unexpected error. Please try again later.");
  },
  error: function(error) {
    console.log(e);
  } // To catch any network errors
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...