如何以url格式传递数据

时间:2019-02-18 12:54:22

标签: php url hyperlink

我目前正在创建一个可点击客户电子邮件地址和电话号码的表格。当您单击它时,它将重定向到另一个页面并在该页面上执行过滤器搜索。

我想通过URL发送客户电子邮件或电话号码的数据,但是看来您只能输入确切的过滤器搜索。我希望当用户单击超链接时,它将通过URL发送被单击的数据并执行过滤器搜索。

<?php 
    foreach($checked_columns as $key=>$column){
        if ($column){
            if ($key == 'client_email'){?>
              <td>
                  <a href="admin/sales/browse/confirmed-sale?fc=client_email&fv=alif4arsenal97%40gmail.com" class="style1"><?= $sale['client_email']; ?></a>
              </td>
            <?php } elseif  ($key == 'client_phone_number') { ?>
              <td>
                <a href="admin/sales/browse/confirmed-sale?fc=client_phone_number&fv=60192597698" class="style1"><?= $sale['client_phone_number']; ?></a>
              </td>
            <?php } else {?>
                <td><?= $sale[$key]; ?></td>
            <?php } 
        }
    }
?>

如何更改URL的最后一部分,以便它可以通过变量进行搜索。

2 个答案:

答案 0 :(得分:1)

您的代码可以进行优化/重构以利用可变数据。

foreach ($checked_columns as $key => $column) {
    if ($column) {
        echo "<td>";
            if (in_array($key, ['client_email', 'client_phone_number'])) {
                echo "<a href=\"admin/sales/browse/confirmed-sale?fc={$key}&fv=" , urlencode($sale[$key]) , "\" class=\"style1\">{$sale[$key]}</a>";
            } else {
                echo $sale[$key];
            }
        echo "</td>";
    }
}

$key值看起来好像不需要进行编码才能插入url,但是电子邮件似乎是不错的选择。

通过“驻留” php,我认为您会发现该片段更易于阅读。

答案 1 :(得分:0)

如果我对您的理解正确,当前您正在输出静态文本:

<a href="admin/sales/browse/confirmed-sale?fc=client_phone_number&fv=60192597698" class="style1">

您想输出变量。考虑您的代码中已经有一个示例,该示例说明如何从变量输出值:

<?= $sale['client_phone_number']; ?>

只需对您的网址应用相同的确切操作。唯一的补充是确保您URL-encode the value具有非URL友好字符。像这样:

<a href="admin/sales/browse/confirmed-sale?fc=client_phone_number&fv=<?= urlencode($sale['client_phone_number']); ?>" class="style1">

您可以采用多种方法来重新组织代码,或者将HTML放入字符串中并使用echo,或者应用PHP模板引擎将内容与标记分开。您如何组织它实际上取决于个人喜好。但是最简单的是,如果您要输出一个值,则只需像已经做的那样输出该值即可。