我有一个动态链接,它根据发票 ID 获取发票详细信息。
<a href='<?php echo $_SERVER['PHP_SELF']; ?>/retrieve?class=InvoiceLineItems&id=<?php echo $invoice['invoice_id']; ?>'><?php echo $invoice['invoice_number']; ?></a> <?php echo $invoice['customer_name'] ?> <?php echo $invoice['invoice_date'] ?>
它调用这个函数
public function retrieve($class,
$id = NULL)
{
switch ($class) {
case 'Invoice':
$invoices = $this->invoice->getInvoices();
include 'view/invoiceList.php';
break;
case 'InvoiceLineItems':
$partnerInfo = $this->partnerInfo->getPartnerInfo($id);
$invoiceLineItems = $this->invoiceLineItems->getInvoiceLineItems($id);
include 'view/invoice.php';
break;
}
}
但是,在现有页面的底部找到的 include 语句case 'InvoiceLineItems:'
将内容附加invoice.php
到现有页面的底部,而不是完全替换它。我尝试将目标添加到锚点,但没有奏效。如何获取打开新页面的链接?
更新:根据@sixeightzero 的建议,这里是调用retrieve();
if (isset($_REQUEST['id'])) {
// A request ID value indicates arrival here through link.
$this->retrieve('InvoiceLineItems',
$_REQUEST['id']);
}
另外,我尝试使用标头重定向。
ob_start();
header('Location: /view/invoice.php', 302);
ob_end_flush();
exit();
它重定向,但我无法访问我的数组变量
$invoiceLineItems = $this->invoiceLineItems->getInvoiceLineItems($id);
所以,我得到像
Notice: Undefined variable: partnerInfo in C:\xampp\htdocs\bp\view\invoice.php on line 25
和
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\bp\view\invoice.php on line 25