使用$ _POST显示数据

时间:2014-02-12 00:52:52

标签: php html forms post

我有工作代码,但我有一个关于通过表格格式化的$ _POST发送数据的问题。

在PAGE1.php上,我有这段代码:

$printoutput .="<tr><td width='10%'> Item #". ($i+1) ."</td></tr> 
<tr width='20%'><td>  " . $product_name . " --&nbsp;$" . $price . ".00</td></tr>
<tr><td width='40%'>" . $displayoptions . "</td>
<tr><td>&nbsp;</td></tr>";

它是通过表单提交的,我使用POST来获取数据。在PAGE2.php上,当我拉出数据并将其回显时,格式会完全改变。换句话说,在PAGE1.php上,数据如下所示:

项目#1
汉堡包 - $ 6.00
水果杯

项目#2
泛烤三文鱼 - $ 18.00
Vegtables

在第二页上,数据如下所示:

项目#1 汉堡包 - 6.00美元 水果杯

项目#2 Pan Roasted Salmon - $ 18.00 Vegtables

有谁知道如何使用正确的格式发送数据?因此,当它到达PAGE2.php时,我可以简单地回显出数据变量,并使其显示与PAGE1.php相同

我尝试了多种方法让它发挥作用,但没有一种方法是正确的。任何帮助,将不胜感激。谢谢。

PAGE2.php代码如下所示:

if(isset($_POST['order'])) {
  $order = $_POST['order'];
}

echo $order;

1 个答案:

答案 0 :(得分:1)

修改

替代方式,一种链式方法,它将产生与原始答案相同的输出:

快速注意:

这:

$_SESSION['prodname'] = $product_name = "Product name";

可以更改为:

$_SESSION['prodname'] = $product_name = $_POST['product_name'];

从POST变量中获取信息。以上用作简单测试。

Page 1

<?php
session_start();
$_SESSION['prodname'] = $product_name = "Product name";
$_SESSION['prodcost'] = $price = "10";
$_SESSION['display'] = $displayoptions = "Display options";

// testing purposes only
// $price = $_SESSION['prodcost'];
// $displayoptions = $_SESSION['display'];

$printoutput .="<table><tr><td width='10%'> Item #". ($i+1) ."</td></tr> 
<tr width='20%'><td>  " . $_SESSION['prodname'] . " --&nbsp;$" . $_SESSION['prodcost'] . ".00</td></tr>
<tr><td width='40%'>" . $_SESSION['display'] . "</td>
<tr><td>&nbsp;</td></tr></table>";

// echo $printoutput;
$_SESSION['order'] = $printoutput;
echo $_SESSION['order']; // will echo on screen

第2页

<?php
session_start();
if(isset($_POST['order'])) {
// $order = $_POST['order'];

$_SESSION['order'] = $printoutput;

$printoutput .="<table><tr><td width='10%'> Item #". ($i+1) ."</td></tr> 
<tr width='20%'><td>  " . $_SESSION['prodname'] . " --&nbsp;$" . $_SESSION['prodcost'] . ".00</td></tr>
<tr><td width='40%'>" . $_SESSION['display'] . "</td>
<tr><td>&nbsp;</td></tr></table>";

echo $printoutput; // Successfully printed out data from page 1
}

// You can place the mail() function below this

原始答案

您可以使用sessions

受限于未示出的代码,提出了以下内容:

N.B。:我添加了<table></table>个标签作为我自己的测试。

Page 1

<?php
session_start();
$product_name = "Product name";
$price = "10";
$displayoptions = "Display options";

$printoutput .="<table><tr><td width='10%'> Item #". ($i+1) ."</td></tr> 
                            <tr width='20%'><td>  " . $product_name . " --&nbsp;$" . $price . ".00</td></tr>
                            <tr><td width='40%'>" . $displayoptions . "</td>
                            <tr><td>&nbsp;</td></tr></table>";

$_SESSION['order'] = $printoutput;
echo $_SESSION['order'];

第2页

N.B。: echo $_SESSION['order'];可能需要在条件语句中移动,但以下内容适用于现在的位置。

<?php
session_start();
if(isset($_POST['order'])) {
  $order = $_POST['order'];
}

echo $_SESSION['order'];

将打印:

项目#1
产品名称 - 10.00美元 显示选项

生成的HTML源代码:

<table><tr><td width='10%'> Item #1</td></tr> 
<tr width='20%'><td>  Product name --&nbsp;$10.00</td></tr>
<tr><td width='40%'>Display options</td>
<tr><td>&nbsp;</td></tr></table>