PHP-файл не получает данные из поста AJAX - PullRequest
0 голосов
/ 23 февраля 2019

jQuery code:

$(document).ready(function(){
    $('.tablePend tbody').on('click','.btn',function(){
        // var id=$('#test-pend').val();
        var currow=$(this).closest("tr");
        var colId = currow.find('td:eq(3)').text();
        var id = colId;
        alert(id);
        $.post("../admin/detail.php", {
            pid:id
        });
    });
});

Таким образом, приведенный выше код работает отлично, предупреждение показывает желаемый результат

<?php
include('dbh.inc.php');
include_once('header.php');

if(isset($_POST['pid'])) {
    $id = mysqli_real_escape_string($conn, $_POST['pid']);
    $sql= "SELECT event_name, event_desc, event_date, event_id FROM events WHERE event_id='$id'";
    $result= mysqli_query($conn, $sql);
    echo $id;
} else {
    echo 'nothing';
}

include_once 'footer.php';
?>

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

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

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

Ваш $.post() код jQuery не включает обработчик успеха (или ошибки).Это означает, что независимо от того, что произойдет, вы не увидите результатов того, что говорит ваш PHP-файл.Но в своем вопросе вы говорите, что видите nothing.Итак, это заставляет меня подозревать, что вы на самом деле не отправляете через AJAX.

Вы показали нам код jQuery, в котором к вашей кнопке прикреплен обработчик событий.Я думаю, ваша кнопка внутри <form>.Когда вы нажимаете кнопку в форме, она отправляет ее.Если вы хотите, чтобы ваш jQuery обрабатывал его, вы должны явно указать, что обычной отправки формы не должно происходить.И ваш код jQuery этого не делает.

Так что все это означает, что когда вы нажимаете кнопку, форма отправляется обычно .Ваш обработчик событий может сработать, и этот код запускается, но в то же время браузер перешел к вашей цели <form>, и jQuery никогда не добирается далеко.Ваш <form> на самом деле не включает id, вы устанавливаете его динамически с помощью jQuery.Таким образом, вы попадаете на цель <form> без id POSTed и видите на странице nothing.

Исправление состоит в том, чтобы остановить нормальную отправку формы:

$(document).ready(function(){
    $('.tablePend tbody').on('click','.btn',function(event){
        event.preventDefault();
        // rest of your code

Примечание. Я добавил event в качестве параметра, передаваемого обработчику событий, а затем использовал его метод preventDefault().Пример этого показан в документации .post() .

0 голосов
/ 23 февраля 2019

На мой взгляд, вы должны проверить $ conn.Вы еще не объявили это в файле detail.php.

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