我有一个基于现有 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,因为您正在使用 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>