различие между post-запросами

#javascript #php #html

#javascript #php #HTML

Вопрос:

У меня есть эта функция jquery, которая отправляет POST-запрос на сервер

 function loadInfo() {
    jQuery(function($) {
        $.ajax({
            method: "POST",
            url: "/admin.php",
            dataType: "json",
            success: function(data) {
                console.log(data);
                for (var i = 0; i < data.length; i  ) {
                    setMarker(data, i, "red");
                    printInfo(data, i);
                }
            }
        })
    });
}
 

Вот как обрабатывается запрос

 if($_SERVER['REQUEST_METHOD'] === 'POST'){
    header('Content-Type: application/json');
    require 'private/database.php';

    $sql = "SELECT * FROM form";
    $result = mysqli_query($conn, $sql);

    $data = array();
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $data[] = $row;
        }
    }
    die(json_encode($data));
}
 

Код работает, но что, если я отправлю несколько POST-запросов на один и тот же сервер? Есть ли способ различать их, как при обработке HTML-форм?
например, если кнопка, которая отправляет форму, является «submit_button»…

 if (isset($_POST['submit_button'])) {
   ...
}
 

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

1. Так почему бы вам не создавать разные конечные точки для попадания, если важно, что его отправляет….

Ответ №1:

Существует несколько способов отправки post с помощью AJAX с данными (несколько элементов данных). Одним из способов является:

  $.ajax({
                url: 'process.php',
                type: 'POST',
                data: {status: "ok", name: "Richard"},
                success: function (result) {
                    alert('success');
                } 
})

 

В приведенном выше случае вы отправили данные о статусе и имени в php-скрипт методом POST. Надеюсь, что это может ответить на ваш вопрос.

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

1. При получении формы, буду ли я использовать «if (isset($_POST[‘Richard’])) {}»?

2. должно быть if (isset($_POST[‘name’])) { }

Ответ №2:

Вы должны отправить некоторый параметр, чтобы дифференцировать запрос.

 eg:     $.post( "test.php", { name: "John", time: "2pm", method:"formSubmit" } );