抱歉,我很快就会再次发帖,但我确实尝试了很多不同的选择,希望它能奏效。
我有一个jQuery / AJAX表单,它将根据用户输入创建数组。然后,AJAX会将值发送到我的PHP脚本,以从我的数据库中提取和放置数据。
我遇到的问题是当我只选中一个框时,AJAX会创建一个空白结果
如果您选择2个或更多值,它可以100%正常工作。我想也许是由一个以0或其他奇数因子开头的数组引起的。我还检查了我的控制台,它正在向我的PHP页面提交正确的值。
单一价值
XHR完成加载:“http://healthbenefitsohio.com/expertise.php?expertise%5B%5D=Ancillary”。
两个及以上的值
XHR完成加载:“http://healthbenefitsohio.com/expertise.php?expertise%5B%5D=Ancillary&expertise%5B%5D=SmallGroup”。
然后我决定也许我可以通过使用if语句实现这一点,这似乎也没有效果。我尝试使用AJAX调用的data
部分中的语句,一个if / else语句,每个语句都有自己的AJAX调用,我尝试将if语句转换为变量以传递给数据。
如果声明
if(myArray.size() > 0) {
//Function goes here
else {
//Function goes here
}
当前适用于两个及以上值的AJAX调用
// Agent search ajax/jQuery
function agentAJAX() {
$('input').on('click', function() { //Pulls data based on radial input
var myArray = [];
var value = $(this).val();
$(".formC input:checkbox:checked").each(function(){
myArray.push($(this).val());
});
$.ajax({
type: "POST",
datatype: "html",
data: {
expertise: myArray
},
url: "expertise.php",
success: function (data) {
$("#bodyA").html(data);
}
});
});
}
agentAJAX();
IF /其他AJAX电话
// Agent search ajax/jQuery
function agentAJAX() {
$('input').on('click', function() { //Pulls data based on radial input
var myArray = [];
var value = $(this).val();
$(".formC input:checkbox:checked").each(function(){
myArray.push($(this).val());
});
if(myArray.size() > 1) {
$.ajax({
type: "POST",
datatype: "html",
data: {
expertise: myArray
},
url: "expertise.php",
success: function (data) {
$("#bodyA").html(data);
}
});
}
else {
$.ajax({
type: "POST",
datatype: "html",
data: {
expertise: value
},
url: "expertise.php",
success: function (data) {
$("#bodyA").html(data);
}
});
}
});
}
agentAJAX();
如果您需要更多信息或代码,请告诉我,我会在午餐后上传。
ANSWER
// Agent search ajax/jQuery
function agentAJAX() {
$('input').on('click', function() { //Pulls data based on radial input
var myArray = [];
var value = $(this).val();
$(".formC input:checkbox:checked").each(function(){
myArray.push($(this).val());
});
if(myArray.length === 1) {
$.ajax({
type: "POST",
datatype: "html",
data: {
expertise: value
},
url: "expertise.php",
success: function (data) {
$("#bodyA").html(data);
}
});
}
else {
$.ajax({
type: "POST",
datatype: "html",
data: {
expertise: myArray
},
url: "expertise.php",
success: function (data) {
$("#bodyA").html(data);
}
});
}
});
}
agentAJAX();
答案 0 :(得分:1)
没有像
那样的东西myArray.size()
而你必须使用
myArray.length
所以你的if语句应该是
if(myArray.length > 1) {
}
/ <强>校正强> /
因为你正在检查数组值=== 1你的条件应该是.length === 1
这样的事情
if( myArray.length === 1) {
} else {
}
您还必须考虑清理代码。只需使用一个函数并将数据作为参数传递,您只需使用一个$ .ajax方法而不是复制。