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