Проверьте любые данные после подтверждающего сообщения с помощью JSON

Я хочу, чтобы оповещение о данных было успешно сохранено или завершилось неудачей после того, как пользователь выберет подтверждающее сообщение. В этом случае проверка данных происходит после того, как пользователь подтвердит сделанное мной сообщение.

Это мой код Javascript:

$('#add-btn').on('click', function(event){
  var confirmation = confirm("Do you want to save ?");
  if (confirmation == true) {
    var code = $('#code').val();
    var name = $('#name').val();
    var unit = $('#unit').val();
    var price_code = $('#price_code').val();
    var type = $('#type').val();
    var final = $('#final').val();
    var dataString = 'code=' +code+ '&unit=' +unit+ '&price_code=' +price_code+ '&type=' +type;
    if (code != '' && name != '' && unit != '' && price_code != '' && type != '' && final != ''){
      event.preventDefault();
      $.ajax({
        type: "POST",
        url: "../public/process/add_data.php",
        data: dataString,
        dataType: "json",
        cache: false,
        success: function(data){
          if(data.status == 'success'){
            alert("Success !");
          }
          else if(data.status == 'error'){
            alert("Data already used !");
          }
        }
      });
    }
    else{
      alert('Please fill all fields !');
    }
  }
});

Все введенные данные успешно сохранены, но оповещение не отображается.


person Jaya Hendra Gunawan    schedule 04.01.2018    source источник
comment
Открыли ли вы сетевые инструменты браузера, чтобы убедиться, что запрос AJAX действительно был успешным?   -  person leonardseymore    schedule 04.01.2018


Ответы (3)


Я думаю, что проблема в вашем файле php. ваши данные JOSN имеют неправильный формат, который вы получили в случае успеха. Попробуйте это сделать в вашем файле add_data.php

//All code goes here and after insert try this

$array = array();

if(if data insert successfully) { 
  $array['status '] = 'success';
} else {
  $array['status '] = 'error'; 
}

header('Content-Type: application/json');
echo json_encode($array);
person Dipok Chakraborty    schedule 04.01.2018
comment
Привет, dipok, спасибо за ответ, но я уже сделал это в своем add_data.php. - person Jaya Hendra Gunawan; 05.01.2018

Функция успеха выполняется только в том случае, если все прошло хорошо. Если произошла какая-либо ошибка, вам необходимо добавить функцию отказа Ajax следующим образом:

     $.ajax({
        type: "POST",
        url: "../public/process/add_data.php",
        data: dataString,
        dataType: "json",
        cache: false,
        success: function(data){
            alert("Success !");
        }
    }).fail(function () {
            alert("Data already used !");
    });
person Iñigo Irigoyen Erquicia    schedule 04.01.2018
comment
Привет Иньиго, я уже пробовал это, но это тоже не сработало :'( У вас есть другое решение? Спасибо - person Jaya Hendra Gunawan; 05.01.2018

наконец я нахожу свое решение. Прошу прощения за мою невнимательность. Это произошло потому, что моя переменная dataString не завершилась. Так должно быть :

var dataString = 'code=' +code+ '&name=' +name+ '&unit=' +unit+
'&price_code=' +price_code+ '&type=' +type+ '&final=' +final;

Спасибо всем за вашу доброту :-)

person Jaya Hendra Gunawan    schedule 05.01.2018