как отобразить ошибку, используя ajax в вызове функций класса php? - PullRequest
0 голосов
/ 16 июня 2020

Хорошо, это, наверное, очень просто, но я весь день ломал себе голову над этим и не могу заставить его работать.

У меня есть страница, на которой есть функция, которая addusers. Для этого я отправляю AJAX вызов обработчику. php, который выполняет некоторую проверку и отправляет ошибку , если она есть, или успех сообщение, если все в порядке. ОК.

В процедурном PHP я могу легко решить эту проблему с помощью следующего подхода:

ПРИМЕЧАНИЕ: (Мой подход) Это просто демонстрационный код, чтобы показать, как ajax обрабатывает ОШИБКУ: Сообщения УСПЕХ

<p id="display_error"></p> // all success/error display here 

Ajax успех

success: function(response) 
{
      if((response !== "") && ($.isNumeric(response))) {
        {
         //redirect in ajax success
         location.href = "http://localhost/manage/info.php?id="+ response;
        } 
      else {
             //this will display the custom error.
             $("#display_error").html("<p>" + response + "</p>"); //output: something went wrong!
           }
 }

PHP

if(num_rows > 0) {
    $conn = mysqli_connect();
    $query = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('$fname', '$lname', '$email')";
    $result = mysqli_query($conn, $query) or die ('Error Could Not Query');

    $id = mysqli_insert_id($result);

    echo $id;

    mysqli_close($conn);
} else { 
    echo 'something went wrong!';
}

Но теперь Я переключаюсь на классы ... Я и не знаю, как отображать сообщение об ошибке или успешном выполнении, используя ajax в php функциях. Проблема в вызове функции. это основы, которые PHP отображают сообщение об ошибке или успешном завершении, откуда вызывается фактическая функция. В приведенном ниже коде функция вызывается со страницы индекса, недоступной для ajax, для получения сообщений об успехе или ошибках. Есть ли лучший подход к обработке ошибок php ajax? Я новичок в этом ... люблю видеть ..

обработчик. php

function addUser($firstname, $lastname, $email)
{
    global $db;

   // prepare and bind
   $stmt = $db->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
   $stmt->bind_param("sss", $firstname, $lastname, $email);


   if($stmt->execute())
   {
      echo "New records created successfully";
   }else
   {
     echo "something went wrong!";
   }

   $stmt->close();


}

addUser('Navjot','singh','ns00@domain.com'); //calling from index.php page 

1 Ответ

2 голосов
/ 16 июня 2020

Используйте json_encode для результата вызова ajax. Например, echo json_encode (array ('status' => 1, 'your value' => '')); или echo json_encode (array ('status' => 0, 'error_msg' => ''));

И в вашем интерфейсе, если вы используете PHP, вы можете использовать json_decode () , если вы используете javascript, вы можете использовать JSON .parse ()

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