параметр функции обратного вызова jquery success содержит клавишу ввода

#php #jquery #ajax #ajaxform

#php #jquery #ajax #ajaxform

Вопрос:

Я отправляю php-форму с помощью jquery ajax, но при получении значения параметра функции обратного вызова success значение параметра содержит ключ ввода перед значением, возвращаемым с сервера.

Для обхода я использую метод includes.

Кто-нибудь знает, почему клавиша enter вставлена перед значением, возвращаемым с сервера?

  $.ajax({
    type: "POST",
    url: "_action.php",
    data: dataString,
    success: function(result) {
      n = result.includes("success");
      if (n) {
          grecaptcha.reset();
          $("#spinner-contact").remove();
          $('#success_msg').html("<img class='img-fluid aligncenter mb-3' id='checkmark' src='media/img/form_submitted.jpg' />");  
      }
      else {
          grecaptcha.reset();
          $("#spinner-contact").remove();
          $('#success_msg').html("<div class='mt-3'><strong><h1 class='alert alert-warning'>Contact failed!</strong> Please submit again.</h1></div>");   
      }
    }
  });



$statement = runQPs("INSERT INTO my_guestbook(title, url, path, pos, content, isactive, date) VALUES(
            ?, ?, ?, ?, ?, ?, ?
        )",[$name, $email_from, $address, $telephone, $comments, 0, $now]);

        // Insert contact success or fail 
        if($statement->affected_rows === 0) {
            $result = "fail";
        }
        else {
            $result = "success";
        }

        echo $result;
  

введите описание изображения здесь

Комментарии:

1. Используйте формат JSON

Ответ №1:

В PHP-коде вы можете возвращать значение следующим образом:

 return json_encode(result);
  

В файле JS:

 success: function(result) {
  // this will be your response from PHP code
  // add you'r IF statement here
  console.log(result);     
}
  

Комментарии:

1. Да, похоже, что я должен закодировать данные в PHP, а затем проанализировать их в JS. Спасибо.

Ответ №2:

я думаю, вы можете изменить свое «echo» в файле php, чтобы вернуть «json»

и в вашем ajax-коде:

 n = result.includes("success");
  

Для

 var response = result.message(name of return json);
  

Комментарии:

1. Я изменил на json, но у него все еще есть клавиша ввода.

Ответ №3:

После повторения переменной результата вы можете выполнить оператор примерно так.

 echo $result;die;
  

или

 die($result);
  

Комментарии:

1. Ответ такой же, как на прикрепленном изображении из моего первого поста выше.