在 ajax 调用之前变量值没有增加

问题描述 投票:0回答:1

我有一个基于现有 PHP 数组值编译的 url 字符串。 URL 很好,但是每次 AJAX 调用之后我都想要最后一个变量 增加了100。 控制台日志显示正确的值,但 URL 字符串在偏移值后有 NULL 这是控制台日志中显示的 URL 字符串

basictest.php?base=accountancy-jobs&cat=accountancy&kw=&loc=London&distance=10&cattitle=Accountancy&offset=200NULL

该值正在增加,但由于某种原因在其后面添加了 NULL

这是我的代码

let last = 100;
let vars = '<?php foreach($passedVars as $vars=>$key){ if($vars == 'base'){ echo $vars.'='.$key;$pv++;} if($pv < $pvcount){ echo '&'.$vars.'='.$key;$pv++;} else {echo '&'.$vars.'='.$key;}}?><?php echo "&offset=100";?>'; 
 
$('#next').click(function(e){
           e.preventDefault();
    vars = '<?php foreach($passedVars as $vars=>$key){ if($vars == 'base'){ echo $vars.'='.$key;$pv++;} if($pv < $pvcount){ echo '&'.$vars.'='.$key;$pv++;} else {echo '&'.$vars.'='.$key;}}?><?php echo "&offset=";?>'+last;
   $.ajax({
                   dataType: 'html',
                   url: 'basictest.php?'+vars,
                   type: 'get',
                   success: function(html)
                   {
                       $("#more").append(html);
                       last += 100;
                       console.log(html);
                       console.log(last);
                   }
           });
       });
php jquery ajax
1个回答
0
投票

不要使用 PHP,因为您正在使用 AJAX,因此变量不会更新,因为您不应该重新加载页面...

使用 URL 和 URL.searchParams 更新偏移量并使用 $.get 获取新页面

let last = 0;
let url = new URL(`https://yourserver.com/basictest.php?base=accountancy-jobs&cat=accountancy&kw=&loc=London&distance=10&cattitle=Accountancy&offset=0`)

$('#next').on('click', (e) => {
  url.searchParams.set('offset',last)
console.log(url.toString())
//  $.get(url.toString(), (html) => {
//    $("#more").append(html);
    last += 100;
//  }));

})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="next" type="button">Next</button>

© www.soinside.com 2019 - 2024. All rights reserved.