Форма не отправляется после подтверждения начальной загрузки - PullRequest
0 голосов
/ 12 мая 2019

Во-первых, я приношу извинения за то, что мои знания jquery / javascript не очень хороши, поэтому моя ошибка может быть очень очевидной для некоторых, но я все еще учусь, поэтому будьте осторожны!

У меня есть форма, которая позволяет участникам удалятьсообщения, которые они сделали из базы данных.Форма работает нормально, и с помощью php удаляет данные из базы данных, как я хочу.Я хотел создать всплывающее окно, которое заставит пользователей подтвердить, что они хотели бы сделать.Я не хочу использовать стандартный метод onclick для стандартного браузера. Я хотел что-то более настраиваемое.Поэтому я пытаюсь использовать bootbox, у меня в данный момент появляется окно подтверждения, но когда вы выбираете yes, больше ничего не происходит.Я подозреваю, что результатом jquery является не запуск формы, но то, что я прочитал, мой код для этой части хорош?

Я вставил ниже мои php, jquery и html

PHP:

<?php
$deletepost = 'none';
$deleteposterror = 'none';

if(isset($_POST['delete'])) {

    $del_topic_id = $_POST['topic_id_value'];

    // sql to delete a record
    $pass_fail = "DELETE FROM topics WHERE topic_id ='$del_topic_id';";

    $pass_fail .= "DELETE FROM posts WHERE topic_id_post ='$del_topic_id'";

    if (mysqli_multi_query($conn, $pass_fail)) {

    $deletepost = 'show';

    }else{

    $deleteposterror = 'show';
    echo "ERROR: Could not able to execute $pass_fail. "  . mysqli_error($conn);    

    }

}
?>

HTML и PHP в цикле while:

<?php


            $sql1 = "SELECT * FROM topics WHERE topic_by = '".$id."' ORDER BY topic_date DESC ";
            $result1 = mysqli_query($conn, $sql1);

            while($row = $result1->fetch_assoc()) {

            $topic_id = $row ['topic_id'];
            $topic_subject = $row ['topic_subject']; 
            ?>



            <div class='chat_post_titles' >
            <div class='row'>
            <div class='col-md-7 chat_post_text_align_left'>
            <a href="../Chat/post.php?topic_id=<?php echo $topic_id?>"><?php echo $topic_subject?>.</a>
            </div>
            <div class='col-md-2 chat_post_text_align_right'>
            <?php
            $my_date = $row['topic_date'];
            $date = DATE("G:i:s d/m/Y",strtotime($my_date));
            ?>
            <div class='hide_text'>Post Date: </div>
            <?php echo $date?>
            </div>
            <div class='col-md-2 chat_post_text_align_centre'>
            <div class='hide_text'>Delete Post: </div>

            <form method="post" class="delete_post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
            <input type="hidden" name="topic_id_value" id="topic_id_value" value="<?php echo $topic_id?>">
            <button type="submit" name="delete" id="delete" class="btn btn-danger buttonElement">Delete</button>
            </form>
            </div>
            </div>
            </div>
            <?php
            }
            ?>

JQUERY внизу страницы:

</body>
<?php include("../PHP/js.php"); ?>
<script type="text/javascript" src="../Members/updatedetails.js"></script>
<script type="text/javascript" src="../Members/bootbox.min.js"></script>
<script>

$('form').on('click','button.buttonElement',function (e) {
    var form = $(this).closest('form'); // <-- add this

    e.preventDefault();

    bootbox.confirm({
        message: "Are you sure you want to delete your post?", 
        title: "Delete Post",
        buttons: {
            cancel: { 
                label: "No", 
                className: "btn btn-default"
            },
            confirm: { 
                label: "Yes", 
                className: "btn btn-default"
            }
         },
         callback: function(result) {
             if(result == true) {
                 form.submit();
             }
         }
    });
 });

</script>

</html>

1 Ответ

0 голосов
/ 13 мая 2019

Наконец выяснилось, почему мой код не работал в моем php, который я использовал если (Исеть ($ _ POST [ 'удаление'])) но при использовании функции javascript submit() это имя attr удаляется. Поэтому я использовал имя скрытого ввода примерно так: if(isset($_POST['topic_id_value'])), и оно работало как обычно.

Еще спасибо ребятам, которые дали мне совет

...