0

PHP菜鸟在这里。我正在使用 PHP 来呈现供应订单表格。可以订购的用品清单是动态的,所以我从 MySQL 数据库中提取它们。下面是通过循环查询结果生成 HTML 表单字段的 PHP 代码:

while($row = mysqli_fetch_array($itemresult)) 
{
echo "<input type='hidden' name='Item_ID[]' value='" . $row['Item_ID'] . "'></TD>";
echo "<TR><TD class='itemdesc'>" . $row['Item_Name'] . " </TD>";
echo "<input type='hidden' name='Item_Name[]' value='" . $row['Item_Name'] . "'></TD>";
echo "<TD>" . $row['Item_Qty'] . " </TD>";
echo "<TD class='itemprice'>" . $row['Price'] . " </TD>";
echo "<input type='hidden' name='Item_Price[]' value='" . $row['Price'] . "'></TD>";
echo "<TD><input type='text' size='3' name='Order_Qty[]'></TD>";
echo "<TD><input type='checkbox' name='Off_Day[]'></TD>";
}

我没有使用数组的经验,但是我需要将这些表单值以数组格式传递给我的 process.php 文件。现在,我的 process.php 的目的是简单地打印 Item_Name 和相关 Order_Qty 的列表,就像:Pencils 10 Pens 7 等等。作为数组和 PHP 的新手,我不知道如何在我的 process.php 文件中完成此操作,希望得到一些指导。谢谢!

+++++++++++++++++++++++++++++++++++++++++++++++++ * @yknivag * 谢谢!这有助于我理解结构。我一直在在线测试各种 foreach 示例,遇到了障碍,可以使用一些额外的帮助。我的数组结果如下所示。

[Item_Name] => Array (
[0] => One Item
[1] => Second Item
[2] => Third Item
[3] => Fourth Item    )

[Item_Price] => Array (
[0] => 0.00
[1] => 64.50
[2] => 110.00
[3] => 38.45  )

如何引用数组中的特定值,例如“第二项”?我似乎无法弄清楚引用特定项目的语法。例如,此语句不返回任何数据。

echo "Item: " . $_POST[Item_Name] . "<BR>";

还有什么有用的,是知道如何同时显示相应的数组项,例如“第二项”和“64.50”?下面的 foreach 循环似乎应该可以解决问题,但是它也不返回任何数据。

foreach ($myarray as $key => $value)
{
echo "<p>".$key." ".$value."</p>";
}

我读过的所有内容都说这应该给我我想要的东西,我很困惑为什么它什么也没返回。

4

2 回答 2

0

你想要一个关联数组

array("pencil" => 9.99, "pen" => 3.23, "paper" => 21.11)

如果您通过 AJAX 提交表单,您将使用 JavaScript 将值发布到您的 PHP 页面。

var pencil = document.getElementById("pencil").value;
var pen = document.getElementById("pen").value;
var paper = document.getElementById("paper").value;
$.post("process.php", {pencil: pencil, pen: pen, paper: paper});

在您的“流程”页面上,您将获取已发布的值

$pencil = $_POST["pencil"];
$pen = $_POST["pen"];
$paper = $_POST["paper"];

然后使用以下内容构建您的数组

$myarray = array("pencil" => $pencil, "pen" => $pen, "paper" => $paper);

编辑

在您的 WHILE 循环中,通过将其放在末尾来构建自己的数组

$myarray[$name] = $price;

然后在循环之外,将您的数组编码为 JSON 对象

$myjson = json_encode($myarray, JSON_HEX_APOS);

现在您有了一个 JSON 对象,您需要在 JavaScript 中获取它

var myjson = <?php echo $myjson; ?>;

然后你可以用键/值对做任何你想做的事情

for(var key in myjson){
    var item_name = key;
    var item_price = myjson[key];
    //where the magic happens
}
于 2013-10-21T04:07:31.487 回答
0

在您的 process.php 文件中以:

<?php
print "<pre>" . PHP_EOL;
print_r($_POST);
print "</pre>" . PHP_EOL;
?>

然后你会看到被发回的数据的结构,这应该可以帮助你弄清楚如何处理它。

一旦你有了结构,检查foreach命令。

于 2013-10-20T01:23:08.813 回答