Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确使用;数据:“;使用jqueryajax请求?_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 如何正确使用;数据:“;使用jqueryajax请求?

Javascript 如何正确使用;数据:“;使用jqueryajax请求?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,函数deletePost中的代码未执行。这是因为$\u GET['title']的内容为空。我在ajax中使用以下行设置标题的值postTitle:$(this).sibbins(“h3.blog”).text()为什么该值不能通过php脚本实现 index.php <?php include 'scripts/db_connect.php'; include 'scripts/functions.php'; sec_session_star

函数deletePost中的代码未执行。这是因为
$\u GET['title']
的内容为空。我在ajax中使用以下行设置标题的值
postTitle:$(this).sibbins(“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>';
        }

        ?>
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);
}
?>

您有额外的单引号。试着写:

function deletePost($mysqli, $title){
    $sql = "DELETE FROM blog WHERE Title =" . $title;
    mysqli_query($mysqli, $sql);
}
此外,您的代码没有受到sql注入的保护

这是因为
$\u GET['title']
的内容为空

h3.blog
元素不是delete按钮的同级元素。它是delete按钮(表单
元素)父元素的同级。为了使布局更灵活,您可以使用
.closest
(向上遍历)和
。find
(向下遍历):


这意味着您的一个PHP文件中存在语法错误。它与JavaScript没有任何关系。检查
db\u connection.php
functions.php
是否有语法错误。刚刚打印了一个($\u GET);发现标题是空的。。。我想我要删除这个问题,然后继续我的问题。我能够改进我的问题,希望这能让我的问题更清楚!嗯,标题是空的,因为
h3.blog
不是
input.deletePost
的同级。也就是说,
$(this).sibbines(“h3.blog”)
不选择任何元素,对空选择调用
.text()
将返回空字符串。但这并不能解释语法错误。或者你不再有语法错误了?语法错误来自于我用于测试的回音。我使用了print\u r($\u GET);虽然不是回声,而是意识到帖子的标题没有被正确地发送出去。对于我最近的更新,h3.blog不是input.deletePost的兄弟吗?字符串中的单引号有什么问题?在SQL查询中,字符串值必须在引号内。您的代码可能会生成无效的SQL。$\u GET['postTitle']有单引号。sql中的GET变量用单引号表示。你可以看到更多关于这方面的信息你是说
$\u GET['postitle']
的值包含单引号?你怎么知道的?即使这样,它也不会抛出PHP语法错误。如果仔细查看链接到的问题,您会发现情况与这里不同。OP没有尝试访问字符串中的数组,在此之前,他们已经将值分配给了
$title
。(1)语法错误来自他们用于测试的
echo
语句。(2) 只有OP尝试访问字符串中的数组时才会出现问题,即
$sql=“DELETE FROM blog WHERE Title='$\u GET['postitle']”就像你链接到的问题一样。但这里的情况并非如此,OP正在执行
$sql=“DELETE FROM blog WHERE Title='$Title',该代码不同且有效。
function deletePost($mysqli, $title){
    $sql = "DELETE FROM blog WHERE Title =" . $title;
    mysqli_query($mysqli, $sql);
}
$(this).closest('div.blog').find('h3.blog').text()