Ajax请求不工作php

Ajax request is not working php

本文关键字:php 工作 请求 Ajax      更新时间:2023-09-26

我之前问过这个问题,但我仍然没有幸运地得到它的工作。简单地说,我试图更新一个默认图片的个人资料图片时,删除按钮被点击,我试图使用ajax做到这一点,但每当我点击按钮什么都没有发生,图片不更新。我已经测试了php页面本身,它工作得很好,但js不工作,所以有人能发现我在这里做错了什么?

html

<button href="javascript:void(0);" onclick="delete;"  class="btn btn-default delbutt">Delete</button>

js

function delete()
{
$.ajax({
type: "POST",
url: "test.php?action=delete",
cache: false,
success: function(response)
{  
var $divs = $("<div>" + response + "</div>");
  $("#phd").fadeOut('slow');
$(".suc_pic").fadeIn('slow').empty().append($divs.find("#msg"));
 }
});
}

这里是PHP最后的

$username = $_SESSION["userCakeUser"];
if(isset($_POST["action"]) && !empty($_POST["action"]) || isset($_GET["action"]) && !empty($_GET["action"])) 
{
if(isset($_GET["action"]) == "delete") 
{               
$profile = 'default.jpg';
$pp = $db->prepare("update users set profile = ? where username = ?");
echo $db->error;
$pp->bind_param('ss', $profile, $username->username);
$pp->execute();
}
}
else {
echo "Something is wrong. Try again.";
}

POST查询默认情况下不缓存在jQuery ajax(1),所以你可能应该只使用$.post助手代替。此外,查询字符串值不会解析为$_POST超全局变量,因此您的代码将始终从$_POST["action"]读取null。

function delete(){
    $.post(
        "test.php",
        {
            action: 'delete'
        },
        success: function(response){  
            var $divs = $("<div>" + response + "</div>");
            $("#phd").fadeOut('slow');
            $(".suc_pic").fadeIn('slow').empty().append($divs.find("#msg"));
         }
    );
}

(1)在API参考中定义:

用POST获取的页面永远不会被缓存,所以缓存和ifModifiedjQuery.ajaxSetup()中的选项对这些请求没有影响。

这是我的理解,jQuery AJAX请求应该有一个data:选项在那里的某个地方。此外,我看到您使用GET来发出请求,但告诉jQuery使用POST。

$.ajax({
type: "GET",
url: "test.php",
cache: false,
data : {
action : 'delete'
success : function(response)
{
etc...

我不是jQuery专家,但我认为这可能是你的问题。我能想到的唯一一件事就是成功函数没有正常工作。检查你的F12菜单,并张贴任何警告/错误,以便我们可以看到它。