jQuery、AJAX、PHP数据交换问题

jQuery、AJAX、PHP数据交换问题,php,ajax,json,jquery,Php,Ajax,Json,Jquery,我尝试使用jquery.ajax函数将输入字段中的值发布到php文件中。php部分必须将数据插入mysql数据库,生成唯一的pincode,并通过json将pincode返回给jquery代码 但是当提交表单时,什么都没有发生 当我直接进入浏览器中的main.php文件时,它会显示一个唯一的pincode,php脚本甚至会在数据库中插入pincode。所以我认为JSON部分出错了,但我不知道为什么 我希望有人能告诉我我做错了什么。任何帮助都会很棒 代码下面是工作代码 HTML部分: AJAX

我尝试使用jquery.ajax函数将输入字段中的值发布到php文件中。php部分必须将数据插入mysql数据库,生成唯一的pincode,并通过json将pincode返回给jquery代码

但是当提交表单时,什么都没有发生

当我直接进入浏览器中的main.php文件时,它会显示一个唯一的pincode,php脚本甚至会在数据库中插入pincode。所以我认为JSON部分出错了,但我不知道为什么

我希望有人能告诉我我做错了什么。任何帮助都会很棒

代码下面是工作代码

HTML部分:


AJAX PHP JSON测试
$(文档).ready(函数(){
$(“表单#用户表单”).submit(函数(){
var inputFname=$('#inputFname').attr('value');
var inputLname=$('#inputLname').attr('value');
$.ajax({
类型:“POST”,
url:“main.php”,
数据:{inputFname:inputFname,inputLname:inputLname},
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(数据){
$(“p.succesText”).html(data.jsCode);
$(“form#userForm”).hide();
$(“div.success”).fadeIn();
},
错误:函数(xhr、状态、错误){
$(“form#userForm”).hide();
$(“p.errorHead”).html(“出了点问题。”);
$(“p.errorText”).text(“ResponseText:+xhr.ResponseText
+“状态代码:”+xhr.status
+“ReadyState:”+xhr.ReadyState);
$(“div.error”).fadeIn();
}
});
返回false;
});
});     
输入你的名字


输入您的姓氏


生成代码

PHP部分:

美元中的
.ajax替换

data: {'inputFname': inputFname,'inputLname': inputLname},

希望有帮助。

来自JQuery API

表单及其子元素不应使用与表单属性(如submit、length或method)冲突的输入名称或ID。名称冲突可能会导致混乱的失败。有关规则的完整列表以及检查标记是否存在这些问题,请参阅DOMLint

你写的

<form id="submit" method="post" name="submit" action="">

尝试更改表单的id/名称。

您也没有使用

返回false

在summit回调中防止默认表单提交。像这样更改js代码

$(document).ready(function() {
            $("form#submit").submit(function() {
                var inputFname = $('#inputFname').attr('value');
                var inputLname = $('#inputLname').attr('value');
                $.ajax({
                    type: "POST",
                    url: "main.php",
                    data: {inputFname: inputFname,inputLname: inputLname},
                    dataType: "json",
                    contentType:"application/json; charset=utf-8",
                    success: function(data) {
                        $("p.succesText").html(data.jsCode);
                        $("form#submit").hide();
                        $("div.success").fadeIn();
                    },
                    error: function(xhr, status, error) {
                        $("form#submit").hide();
                        $("p.errorHead").html("Something went wrong.");
                        $("p.errorText").text("ResponseText: " + xhr.responseText
                                            + "Statuscode: " + xhr.status
                                            + "ReadyState: " + xhr.readyState);
                        $("div.error").fadeIn();
                    }
                });
                return false;
            });
        });

在userForm中更改了id/名称,但不幸没有结果。嗨,Joy,return false语句有效!谢谢你的回答!顺便说一句,我认为单引号用于文本,没有引号来调用变量?在对象的键中,您可以使用引号,也可以不使用引号。但使用引号更好,因为这样就不可能出现关键字冲突。但不带引号的版本更常用。:)嗨,Nuno Costa,我以为单引号用于文本,没有引号来调用变量?冒号前没有单引号,冒号后只有单引号,如果它不是变量。
$(document).ready(function() {
            $("form#submit").submit(function() {
                var inputFname = $('#inputFname').attr('value');
                var inputLname = $('#inputLname').attr('value');
                $.ajax({
                    type: "POST",
                    url: "main.php",
                    data: {inputFname: inputFname,inputLname: inputLname},
                    dataType: "json",
                    contentType:"application/json; charset=utf-8",
                    success: function(data) {
                        $("p.succesText").html(data.jsCode);
                        $("form#submit").hide();
                        $("div.success").fadeIn();
                    },
                    error: function(xhr, status, error) {
                        $("form#submit").hide();
                        $("p.errorHead").html("Something went wrong.");
                        $("p.errorText").text("ResponseText: " + xhr.responseText
                                            + "Statuscode: " + xhr.status
                                            + "ReadyState: " + xhr.readyState);
                        $("div.error").fadeIn();
                    }
                });
                return false;
            });
        });