【问题标题】:Displaying data using $_POST使用 $_POST 显示数据
【发布时间】:2014-02-12 00:52:52
【问题描述】:

我有工作代码,但我有一个关于通过表格格式的 $_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 美元
蔬菜

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

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

项目 #2 烤三文鱼——18.00 美元 蔬菜

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

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

PAGE2.php 代码如下:

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

echo $order;

【问题讨论】:

  • 旁注:“我使用&amp;_POST 来获取数据。” 那个& 符号距离$ 大约2-3 英寸——你确定吗?
  • 抱歉打错了
  • 没问题。无永久性损坏;只是检查;-)
  • 第 2 页的代码有什么用?这就是我们需要看到的。
  • 为什么不把你有的代码放在第 1 页,然后把它放在第 2 页的条件语句中呢?或者接近它的东西。我可能能够弄清楚,但是当我完成时,一定会有人回答;-)

标签: php html forms post


【解决方案1】:

编辑

另一种方式,一种链式方法,将产生与我原来的答案相同的输出:

速记:

这个:

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

可以改为:

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

从您的 POST 变量中获取信息。以上只是作为一个简单的测试。

第 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

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

注意:我添加了&lt;table&gt;&lt;/table&gt; 标签作为我自己的测试。

第 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 页

注意: 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>

【讨论】:

    猜你喜欢
    • 2013-08-16
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多