javascript - 如果输入为空,如何发送不同的 AJAX URL
问题描述
我正在使用 AJAX 进行实时搜索,它搜索名为 number 的 SQL 列的所有行并按数字排序。但是当输入为空时,我无法弄清楚如何将 SQL 排序更改为另一个名为 wt 的列。
我尝试制作一个 JQuery if 语句,如果输入为空,则显示一个 AJAX 页面,该页面具有按 wt 排序的 SQL:
//Search filter
function searchFilter(page_num) {
page_num = page_num?page_num: 0;
var ItemSearch = $('#ItemSearch').val();
$.ajax({
type: 'POST',
url: 'vendors/php/getSearchData.php',
data:'page='+page_num+'&ItemSearch='+ItemSearch,
success: function (html) {
$('.LoaderContainer').hide(); //Hide infinite scroll
$('#BodyContainer').html(html);
}
});
// Validating if search box is empty (my issue)
if (ItemSearch == '') {
$.ajax({
type: 'POST',
url: 'vendors/php/NextPage.php',
success: function (html) {
$('.LoaderContainer').show(); //Show infinite scroll
$('#BodyContainer').html(html);
}
});
}
}
我希望输出从变量 ItemSearch 为空时url: 'vendors/php/getSearchData.php'
变为url: 'vendors/php/NextPage.php'
解决方案
为 URL 和数据使用变量,这样您就可以设置它们,if/else
然后使用相同的 AJAX 代码。
function searchFilter(page_num) {
page_num = page_num ? page_num : 0;
var ItemSearch = $('#ItemSearch').val();
var url;
var data;
if (ItemSearch == '') {
url = 'vendors/php/NextPage.php';
data = {
pageno: parseInt($("#pageno").val()) + 1
}
} else {
url = 'vendors/php/getSearchData.php';
data = {
page: page_num,
ItemSearch: ItemSearch
};
}
$.ajax({
type: 'POST',
url: url,
data: data,
success: function(html) {
$('.LoaderContainer').hide(); //Hide infinite scroll
$('#BodyContainer').html(html);
}
});
}
我强烈建议您使用对象形式data
而不是连接字符串。jQuery 会将其转换为字符串并正确编码,但您没有这样做。
推荐阅读
- spring-boot - 每当我在标头中发送访问令牌时,Docker spring boot 返回 401
- powershell - 设置内容附加到其他文件
- plotly - 在 Axes 坐标之间添加标签
- python - 在 .xlsx 文件中创建新工作表
- spring - Kafka Stream:无法从 Kafka 持久 keyValue 状态存储中获取数据
- maven - Maven WebService 客户端依赖
- react-native - 用按钮反应本机打开抽屉
- json - 为什么我的 WordPress 域只能在没有 www 的情况下使用,而不能与 www 一起使用?
- java - 负数的 BigInteger 求幂失败
- python-3.x - 使用 Functools(部分)清除小部件。lambda会起作用吗