使用 JavaScript 函数将页码从一个 PHP 文件传递​​到另一个文件

Passing a page number from one PHP file to another using a JavaScript function

我正在开发具有以下 URL 结构的网站:

我正在尝试使用 javascript 函数将当前页码从 index.php 传递到 myphpscript.php

<script>
function swapContent(filterchoice){
    var PageNum = <?php echo json_encode($_GET["page"]); ?>;
    var url = "myphpscript.php";
    $.post(url, {contentVar: filterchoice, page : PageNum}, function(data){
        $("#myDiv").html(data).show();
    });
}
</script>

myphpscript.php 上,当为 http://www.mywebsite.com/ 案例添加以下条件时得到 $page_number=1:

if (isset($_POST['page'])) {
    $page_number = $_POST["page"];
}
else {
    $page_number = 1;
}
echo $page_number;

默认主页似乎没有 echo 任何内容,但在 URL 中为所有其他页面回显正确的页码 page=。然而,isset 条件似乎在 index.php 上正常工作,即使是默认主页:

if (isset($_GET["page"])) {
    $page_number = $_GET["page"];
}
else {
    $page_number = 1;
}

你能解释一下为什么它适用于第二种情况而不适用于第一种情况吗?如果我在默认主页上,我如何在 myphpscript.php 中设置 $page_number=1

您必须检查第一个脚本中是否存在$_GET["page"]。如果没有提供页面(比如在您的主页中),那么您的脚本将如下所示:

<script>
  function swapContent(filterchoice){
    var PageNum = ;
    //...
  }
</script>

这非常非常糟糕。
你应该这样修复它:

var PageNum = <?= $_GET["page"] ? $_GET["page"] : 1 ?>;

这是一个快捷方式条件语句。它说:

if $_GET["page"] exists, output it. Otherwise, output 1