jquery+;AJAX我的javascript函数有什么问题?删除记录,添加记录而不刷新

jquery+;AJAX我的javascript函数有什么问题?删除记录,添加记录而不刷新,javascript,jquery,ajax,Javascript,Jquery,Ajax,我的JavaScript有什么问题?在不刷新页面的情况下添加记录是错误的 在一些有经验的用户的帮助下,我现在完成了完全删除。但是现在向数据库中添加记录还不起作用 我想现在动态添加记录而不刷新。。删除功能正常,并反映在数据库中 我将包括4个文件和我的数据库: 这些文件是我的主目录的index.php add.php用于添加记录 delete.php用于删除记录 数据库连接和配置的dbconfig index.php: delete.php: 我的javascript有什么问题,最好的解决方法是

我的JavaScript有什么问题?在不刷新页面的情况下添加记录是错误的

在一些有经验的用户的帮助下,我现在完成了完全删除。但是现在向数据库中添加记录还不起作用

我想现在动态添加记录而不刷新。。删除功能正常,并反映在数据库中

我将包括4个文件和我的数据库:

  • 这些文件是我的主目录的
    index.php
  • add.php
    用于添加记录
  • delete.php
    用于删除记录
  • 数据库连接和配置的dbconfig
index.php
delete.php
: 我的javascript有什么问题,最好的解决方法是什么


有你们推荐给像我这样的初学者的好的文本编辑器吗?

从第一眼看,我可以看出id没有作为参数传递给delete.php脚本。尝试向ajax调用添加
data:info
。这可能是让它工作的第一步


我看到的另一个问题是,
$(this).attr(“id”)
不会为您提供要删除的游戏id,而是提供按钮元素的id(
“Submit”
)。相反,您应该使用
$(“#ID”).val()
从隐藏字段中获取值。

我马上注意到一些事情

jQuery语法 首先,您的JavaScript语法已关闭。在第一个文件(
index.php
)中,您有以下行:

 $("#add").load("add.php") {
这不是该方法的正确语法。基本上,你有:

$("#add").load("add.php") {
  // ... stuff to happen after add.php loads
}
您应该拥有的是:

$("#add").load("add.php", function() {
  // .. stuff to happen after add.php loads
});
记住,您需要以回调的形式添加这个额外的功能,否则它将无法工作

不一致的呼叫 在我提到的第一个代码块中,看起来您正在尝试加载
add.php
,然后在加载后启动一些JavaScript命令。但是查看
add.php
文件的源代码,您不想这样做。您的
add.php
文件包含处理将记录添加到数据库的服务器端代码。。。您不直接加载它,只需向它提交POST请求

无效数据 您没有正确地将数据发送到服务器。使用add例程,首先创建一个数据字符串:

var dataString = 'ID=' + id 'name='+ name + '&username=' + type + '&password=' + rating + '&gender=' + release;
然后通过AJAX将其发送到数据包中:

$.ajax({
    type: "POST",
    url: "add.php",
    data: dataString,
    success: function(){
        $('.success').fadeIn(200).show();
        $('.error').fadeOut(200).hide();
    }
});
这里的问题是双重的。首先,您没有正确编码数据
'ID='+ID'name='
缺少
+
字符,将中断。但即使修复了这个问题,您也会不正确地连接数据。您的
dataString
变量的最终结果如下所示:

ID=1name=Bob&username=my_user&password=password&gender=male
你看到你是如何缺少一个
&
符号了吗?这是一个容易犯的错误,因此请改为发送数据对象。您不太可能错过角色:

$.ajax({
    type: "POST",
    url: "add.php",
    data: {

    },
    success: function(){
        $('.success').fadeIn(200).show();
        $('.error').fadeOut(200).hide();
    }
});
数据不匹配 接下来,将数据传递到服务器,但检查不同的值。添加数据的JavaScript看起来像是要发送:

  • 身份证
  • 名字
  • 用户名
  • 密码
  • 性别
但是您的
add.php
正在检查:

  • 提交
  • 名字
  • 类型
  • 得分
  • 放松
缺失数据 使用delete例程,检查GET中的“ID”值。这意味着该值需要作为附加到URL的查询参数传递。例如:
delete.php?ID=5
删除ID为5的游戏

在PHP中可以很好地检查这一点,但实际上并没有在AJAX请求中发送数据。您的代码应该更像这样:

$("a.deletebutton").click(function(){
    var del_id = $(this).attr("id");
    var info = 'id=' + del_id;
    var parent = $(this).parent();
    if(confirm("Sure you want to delete this game? !")){
        $.ajax({
            type: "get",
            url: "delete.php?" + info,
            context: document.body,
            success: function(){
                $('.p'+del_id).html('deleted');
            }
        });
    }
    return false;
});

请参见
url:“delete.php”
变为
url:“delete.php?”+info
?这会将您的ID附加到url,并使PHP中的
$\u GET['ID']
可用。

诸神啊,至少告诉我们什么不起作用了……请求没有发出吗?它不回来了吗?你有JS错误吗?什么!很抱歉,我是个新手,基本上问你是否删除index.php中add函数的注释没有任何效果,但是因为我注释掉了add函数,所以delete通过隐藏记录来工作,但是它没有从数据库中删除,当我刷新时,我再次看到所有记录。。至于add,我想动态地执行它,但它根本不起作用。但通过刷新,它会成功地将它们添加到数据库中。看起来您没有向delete.php传递任何数据,在delete.php中,您正在检查是否(isset($\u GET['id']),但在ajax中,您没有为该id传递任何数据字符串,我现在正在传递它,并编辑代码。但它仍然没有从web或应用程序中删除database@ryuutatsuo:谢谢我现在通过它变成了现在的url:“delete.php?”+info,data:info,对于felix,谢谢我更改了它,我仍然看到确认是否要删除记录,但它没有从页面或数据库中删除eamann,感谢所有的添加和信息,我修复了你提到的add.php的东西,但是我没有发现我正在传递的数据字符串有什么问题,以及如何修复它,我添加了缺少的+但是。。对于删除,当我按下任何删除按钮时,它现在不会从网页或数据库中删除记录。在inspect元素中,每个delete id都反映了正确的id,但仍然没有发生任何事情。如果我要为delete.php data:info添加到$.ajax,即使我添加它,它仍然不起作用。我没有触摸添加函数,但修复了您提到的所有问题。感谢您抽出时间,如果您更改了代码,请更改问题中的代码片段。否则,我们将无法看到您所做的更改,也无法提供任何其他帮助。我编辑了删除功能的脚本,以便在单击“删除”按钮时传递id,但仍不会反映在数据库或网页上。它不会被删除。我保留了添加记录,并将其注释到s
var dataString = 'ID=' + id 'name='+ name + '&username=' + type + '&password=' + rating + '&gender=' + release;
$.ajax({
    type: "POST",
    url: "add.php",
    data: dataString,
    success: function(){
        $('.success').fadeIn(200).show();
        $('.error').fadeOut(200).hide();
    }
});
ID=1name=Bob&username=my_user&password=password&gender=male
$.ajax({
    type: "POST",
    url: "add.php",
    data: {

    },
    success: function(){
        $('.success').fadeIn(200).show();
        $('.error').fadeOut(200).hide();
    }
});
$("a.deletebutton").click(function(){
    var del_id = $(this).attr("id");
    var info = 'id=' + del_id;
    var parent = $(this).parent();
    if(confirm("Sure you want to delete this game? !")){
        $.ajax({
            type: "get",
            url: "delete.php?" + info,
            context: document.body,
            success: function(){
                $('.p'+del_id).html('deleted');
            }
        });
    }
    return false;
});