【问题标题】:Dynamic url for link with php different php variables用于链接 php 不同 php 变量的动态 url
【发布时间】:2019-03-28 11:00:24
【问题描述】:

我的标题可能不太好,我尽力了。

我想通过 ajax 加载不同的链接,并希望它们根据它们拥有的链接 URL 将它们定向到不同的页面。

href 的值是 php 正在变化的变量。

在简单的情况下,我们这样做: <a href = "somepage.php?varible = 'ifany' ">

但我有不同名称的页面,这些名称通过变量改变。

如何获得带有扩展名的页面名称以及动态向该页面发送变量的能力,我该怎么做?

以下links通过ajax加载了不同的href值。

if ($run = mysqli_query($connect, "SELECT `day` from `foodd_schedule` WHERE `week` = '$week' group by day"))
{
    while ($row = mysqli_fetch_assoc($run)) {
?>

    <a href="<?php echo $row['day'] . '.php'; ?>" value="<?php echo $row['day']; ?>" name="<?php echo $row['day'] ?>"><?php echo $row['day']; ?></a>

<?php
    }
}

href 值中,我将有不同的,我附加了扩展名,即php,我不知道这是对还是错?

如何将变量附加到动态创建的页面名称?

我想在这些动态创建的链接上附加一个id

【问题讨论】:

    标签: php ajax dynamic-url


    【解决方案1】:

    这将是您的 href 值的代码

    <?php echo $row['day'] . '.php?id=' . $id; ?>
    

    我建议创建一个函数来构建您的 url。对于 GET 参数,请使用 http_build_query 函数,请参阅 doc

    更新:

    如何使用http_build_query 附加多个参数,完整示例:

    <php
    if ($run = mysqli_query($connect, "SELECT `day` from `foodd_schedule` WHERE `week` = '$week' group by day")) {
        while ($row = mysqli_fetch_assoc($run)) {
    
            $params = [
                'id' => $id,
                'foo' => 'some string',
            ];
            $query = http_build_query($params); // generate url encoded string
    ?>
            <a href="<?php echo $row['day'] . '.php' . (!empty($query) ? '?' . $query : ''); ?>" value="<?php echo $row['day']; ?>" name="<?php echo $row['day']; ?>"><?php echo $row['day']; ?></a>
    <?php
        }
    }
    ?>
    

    【讨论】:

    • 要追加多个,那我该怎么办?
    • 正如我所写,请参阅http_build_query 函数。您使用所有参数创建一个 assoc 数组,该函数为您创建查询字符串,您将使用 ? 将其附加到文件名
    • 是的,这就解决了问题,但是如果我不使用该函数并且我想通过&amp;附加变量,请告诉我怎么办@
    • 我要求多个变量,因为我不知道在哪里使用该函数! @尼克
    • 这也可以,只是不够灵活,加上函数Generates a URL-encoded query string - 意味着如果参数中有字符串值,则需要使用urlencode
    【解决方案2】:

    我想为这些动态创建的链接附加一个 id。

    您已经有了附加查询字符串值的格式:

    <a href="somepage.php?varible=ifany">
    

    只需将该格式应用于您输出的 HTML:

    <a href="<?php echo $row['day'].'.php';?>?id=someValue"
    

    如果someValue 也来自变量,则使用您已经使用的相同方法来输出该变量:

    <a href="<?php echo $row['day'].'.php?id='.$row['someValue'];?>"
    

    我想基本上我所说的是您已经在输出动态值。因此,为了输出更多动态值,只需重新应用您已有的知识。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-16
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      相关资源
      最近更新 更多