首页 > 解决方案 > 如果输入为空,如何发送不同的 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'

标签: javascriptajax

解决方案


为 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 会将其转换为字符串并正确编码,但您没有这样做。


推荐阅读