【问题标题】:Php array looping, creating dynamic variable for purchasing formphp数组循环,为采购表单创建动态变量
【发布时间】:2014-10-28 19:12:41
【问题描述】:

还是习惯了stackoverflow,原谅我的菜鸟.. :)

有一个 SQL 查询,它返回一个放入 php 表中的数据。我希望这张桌子用于购买。

我的想法是使用产品 ID,这意味着我将使用动态 php 变量(不确定我现在是否正在这样做)相信我看到了类似 $.$varaible$.$ 的帖子非常清楚,是一个不同的主题。

我的代码如下:

$result = mysqli_query($con, "SELECT * FROM Product WHERE Type = 'Game'");
?>

<div class="wrapper">
    <h1 class="headGame">Buy Some Games Man</h1>
</div>
<br />
<div class="wrapper">

<?php
    echo 
    "<table border='1'>
    <tr>
    <th> Name </th>
    <th> Picture </th>
    <th> Console </th>
    <th> Description </th>
    <th> Price </th>
    <th> Amount </th>
    </tr>";

    echo '<form id="gamesOrder" action="purchase.php">';

    while($row = mysqli_fetch_array($result)) {
        $id = $row['Pd_Key'];
        echo"<tr>";
        echo"<td>" . $row['Name'] . "</td>";
        echo"<td>" . '<img class="prdPic" src="'. $row['Picture']. '">' . "</td>";
        echo"<td>" . $row['Type2'] . "</td>";
        echo"<td>" . $row['Description'] . "</td>";
        echo"<td>" . $row['Price'] . "</td>";
        echo"<td>"  . '<input type="number" min="0" max="100"; name="'.$id.'" value=0>' . "</td>";
        echo"</tr>";
    }
    echo '<input type="submit" value="  BUY  ">';
    echo '</form>';
?>

当我点击提交时,它会更改 url 但没有任何反应,它不会重定向。

关于如何让整个过程发挥作用的任何建议。在采购表单中使用的变量,通过一个 php 文件,即 (purchase.php) 和用于此的变量。

编辑 - 有小错误,但在变量 %id 上仍然不是 100%,不会重新定义每个循环,我怎样才能让它动态化,以便可以在表单中使用它来识别用户想要购买的东西.

现在重定向但不重定向到 purchase.php

网址是~/purchase.php?1=0&amp;2=0&amp;3=0&amp;4=0&amp;5=0&amp;6=0&amp;7=0&amp;8=0&amp;9=0&amp;10=0&amp;11=0&amp;12=0&amp;13=0&amp;14=0&amp;15=0&amp;16=0&amp;17=0&amp;18=0&amp;19=0&amp;20=0&amp;21=0

谢谢你的传奇! =D

【问题讨论】:

  • 您是否尝试了以下更改?没用吗?
  • 是的,所以链接现在可以使用。谢谢大家。将通过名称快速查看 $id 是否有效。

标签: php html mysql loops purchase-order


【解决方案1】:

您缺少结束表单插入符:

echo '<form id="gamesOrder" action"purchase.php"';

应该是:

echo '<form id="gamesOrder" action="purchase.php">';

你的 ID 连接也不正确:

echo"<td>"  . '<input type="number" min="0" max="100"; name=".$id." value=0>' . "</td>";

应该是:

echo"<td>"  . '<input type="number" min="0" max="100"; name="id" value="' .$id. '" value=0></td>';

要访问 purchase.php 中的 id,请使用以下代码:

$id = isset($_GET['id']) ? $_GET['id'] : null;

并且你需要用等号将动作分配给表单:

action="myaction.php"

【讨论】:

  • 不仅如此。动作中缺少=,表格主体内的.$id. 连接无效,等等等等。代码中充满了拼写错误。
  • 哇,抱歉,atm 睡眠不足...我会尽快检查。
  • 你的表单标签的顶行和底行是一样的,你没有加等号;)
  • 所以编辑了这些更改,似乎仍然没有重定向。该变量是否也可以用于购买形式?
  • 不确定我第一次尝试发生了什么,但现在正在链接。关于如何使用变量完成购买的任何建议都会很棒。
【解决方案2】:

而且你没有正确传递 id...

    echo"<td>"  . '<input type="number" min="0" max="100"; name=".$id." value=0>' . "</td>";

应该是

    echo"<td>"  . '<input type="number" min="0" max="100"; name="'.$id.'" value=0>' . "</td>";

哦,在表单上你需要采取行动 =

    echo '<form id="gamesOrder" action="purchase.php">';

【讨论】:

    【解决方案3】:

    好的,首先你有一些 HTML 错误,让我们看看:

    • 在表单元素中,您需要关闭它并包含方法(作为 POST),请参阅:

    • 要使用表单发送数据,您需要将数据库中的数据包含在表单字段中,如下所示:

      echo '';

    任何问题都可以告诉我... 干杯。

    【讨论】:

    • 干杯伙伴。重法。我打算使用产品密钥重新查询数据库以获取所有其他数据,这不是一个合适的方法吗?重新定价
    • 不客气!所以关于重新查询,取决于你希望你的项目如何,我的意思是,如果你首先查询所有数据(名称、价格、id、描述、数量等),那么你只需要传递这些字段(你可以对其中一些使用 type='hidden')或只发送一个字段 ID 并重新查询,但这会减慢您的系统请求 2 个查询来完成可以由一个完成的工作。您也可以查看 w3schools.com 以了解有关 PHP 表单的更多信息。最好的部分...它是免费的...大声笑。祝你好运,如有问题请告诉我。
    • Heya Rafael,那么您将如何处理订单。几乎没有卡住(由于缺乏睡眠而完全脑死亡 - 不是我负担得起atm,截止日期)如何。像这样思考: IE if($id > 0)$result = mysql_query("SELECT * FROM Product WHERE Pd_Key = $id).
    猜你喜欢
    • 2021-04-09
    • 2014-05-20
    • 2014-11-26
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 2017-04-30
    相关资源
    最近更新 更多