簡體   English   中英

如何在jQuery ajax請求中正確使用“ data:”?

[英]How to properly use “data:” with jquery ajax request?

我的函數deletePost中的代碼未執行。 這是因為$_GET['title']為空。 我使用以下行postTitle: $(this).siblings("h3.blog").text()在ajax中設置標題的值postTitle: $(this).siblings("h3.blog").text()為什么值無法通過php腳本實現?

index.php

<?php
        include 'scripts/db_connect.php';
        include 'scripts/functions.php';
        sec_session_start();
        $sql = "SELECT * FROM blog";
        $result = mysqli_query($mysqli, $sql);
        while($row = mysqli_fetch_array($result))
        {
            echo'<div class="blog"><h3 class="blog">' . $row['Title'] . "</h3><h3>" . $row['Date'] . "</h3><h3>" . $row['Tag'] . "</h3><hr>";
                echo'<p class="blog">' . $row['Body'] . '</p><form name="postForm" method="post" action="process_post.php">
              <input type="radio" name="postAction" value="editPost" class="editPost" type="button">Edit</input>
              <input type="radio" name="postAction" value="deletePost" class="deletePost" type="button">Delete</input>
              <input type="radio" name="postAction" value="commentPost" class="commentPost" type="button">Comment</input></form></div>';
        }

        ?>

$_GET和來自ajax的數據在做什么?

的JavaScript

$('.deletePost').click(function(){
    $.ajax({
        url:"scripts/post_action.php",
        data: {action: "deletePost",  postTitle: $(this).siblings("h3.blog").text()},
    });
});

post_action.php

<?php
include 'db_connect.php';
include 'functions.php';
if($_GET['action'] == "deletePost")
        deletePost($mysqli, $_GET['postTitle']);
function deletePost($mysqli, $title){
    $sql = "DELETE FROM blog WHERE Title = '$title'";
    mysqli_query($mysqli, $sql);
}
?>

這是因為$_GET['title']為空。

h3.blog元素不是刪除​​按鈕的同級對象。 它是刪除按鈕( form元素)的父級的同級。 為了靈活使用布局,可以將.closest (向上移動)與.find (向下移動)一起使用:

$(this).closest('div.blog').find('h3.blog').text()

您有多余的單引號。 嘗試寫:

function deletePost($mysqli, $title){
    $sql = "DELETE FROM blog WHERE Title =" . $title;
    mysqli_query($mysqli, $sql);
}

另外,您的代碼不受SQL注入的保護。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM