【问题标题】:how to get url variables in ajax如何在ajax中获取url变量
【发布时间】:2017-11-21 13:16:53
【问题描述】:

我正在使用 get 类型创建 ajax 请求,我已将变量传递给 url 并且请求工作正常。现在我创建了一个新按钮,并希望通过单击该按钮来获取当前的 url 变量以进行进一步的处理。 变量未显示在浏览器 url 中,而是显示在 ajax 请求 url 中。如何在点击时获取这些变量?

See the screenshot

 function pagi_ajax(records_per_page){

 var data = 'action=' + 'testing_ajax' + '&records_per_page=' + records_per_page;

    var url_string = window.location.href;
    console.log(url_string);

 $.ajax({
     url: "ajax_pagi.php",
     dataType: "json",
     type: "get",         
     data: data, 

success: function (result) {

    }
  });
}

<a href="javascript:void(0)" onclick="pagi_ajax(records_per_page);">Next</a>
<button class="pagi_button" onclick="pagi_ajax( <?php echo $records_per_page; ?>, 
 <?php echo $rec_limit[$i]; ?>, 
 <?php echo $total_records; ?>)"> <?php echo $i+1; ?> </button>

【问题讨论】:

  • 对不起,如果我误解了 - 如果你在成功函数中使用 console.dir(result) 会发生什么?如果这样做,您应该会看到从服务器端输出的内容。
  • 我正在创建分页,接下来我想获取当前的 url 变量并为下一条记录运行另一个 ajax 请求

标签: javascript ajax url get


【解决方案1】:

您已经有了变量,“records_per_page”是您创建 url 的方式。

要将其传递给另一个函数,您可以在成功调用中添加函数调用并传递您需要的变量。

function pagi_ajax(records_per_page){

    var data = 'action=' + 'testing_ajax' + '&records_per_page=' + records_per_page;

    var url_string = window.location.href;
    console.log(url_string);

    $.ajax({
         url: "ajax_pagi.php",
         dataType: "json",
         type: "get",         
         data: data, 

    success: function (result, records_per_page) {
        // Your code here
        console.log(records_per_page)
        }
});

【讨论】:

  • records_per_page 只是为了让你理解我的问题,我想从 url 获取它如何从 url 获取它,请看截图
  • 所以这里:下一步你没有records_per_page?
  • 点击按钮我发送records_per_page
  • 但是当我点击下一个时,我想要当前 url 中的变量并运行另一个请求,并将新添加的值添加到 record_per_page
  • 那么你点击的时候有records_per_page,你能通过吗?
【解决方案2】:

虽然当前页面的 URL 可通过 location 对象获得,但没有标准 API 可用于访问您用来通过 XMLHttpRequest 发出 HTTP 请求的 URL。

如果您想获取该信息,则必须自己将其存储在某个地方。

在这种情况下,您似乎已经将该信息存储在全局 records_per_page 变量中。所以使用它。

【讨论】:

    【解决方案3】:

    通常某种变量,如:recordPerPage 应该是一个常量并存储在某个地方。如果没有,您可以将该变量缓存在 pagi_ajax 函数中并检索它以供以后使用。

    您可以像这样通过服务缓存该变量:

      pagingInfo = (function(){
        var info = {
          recordsPerPage: 10
        } 
        var get = function(){
          return info;
        }
        var setrecordsPerPage = function(value){
          info.recordsPerPage = value;
        }
        return {
          get: get,
          setrecordsPerPage: setrecordsPerPage
        }
      })()
    
      function pagi_ajax(records_per_page){
        pagingInfo.setrecordsPerPage(records_per_page);
      }
    
      function handleClick(){
        var recordsPerPage = pagingInfo.get().recordsPerPage
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多