表单输入类型等于动态表结果

时间:2017-06-01 20:36:41

标签: php forms dynamic html-table

如何从数据库中获取与我的HTML表格完全相同的“id”值,并将其输入到表单提交值中?

这就是我所做的事情:
我已经生成了两件可行的方法:

  1. 一个html表,它从数据库表中的三列生成结果
  2. 每行上的“卖”提交按钮
  3. IMAGE OF THE TABLE

    正如您在下面的代码中看到的那样。 “id”的值固定为3的值。因此,每当我按下“Sell”按钮时,将1个单位添加到ID为3的产品的数量列中。

    问题:
    我真正想要的是根据特定行的值是动态的。
    如果我在“ID 1”的行上按“卖”,那么我希望将“1”作为值动态添加到表单中。
    如果我在“ID 2”的行上按“卖”,那么我希望将“2”作为值动态添加到表格中..等等。

    <html>
    <body>
    
    <form id="sellAndBuy" method="POST">
    <input type="hidden" name="qty" value="1">
    <input type="hidden" name="id" value="3">
    
    <?php
    
    echo "<table style='border: solid 2px black; text-align:left;'>";
    echo "<tr><th>Product</th><th>Stock</th><th>ID</th></tr>";
    
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "name";
    
    echo "<td>";
    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $conn->prepare("SELECT product_name, product_quantity, product_id FROM product ");
        $stmt->execute();
    
        // set the resulting array to associative
        $result = $stmt->fetchAll(PDO::FETCH_OBJ);
    
        foreach ($result as $v) {
          echo "<td style='width:150px;border:1px solid black;'>";
          echo "</td>";
          echo '<tr>';
          echo '<td>' .$v->product_name. "</td>";
          echo '<td>' . $v->product_quantity. "</td>";
          echo '<td>' . $v->product_id.  "</td>";
          echo '<td> <button type="submit" onclick="askForSell()">  Sell  </button>  </td>
                <td> <button type="submit" onclick="askForBuy()">   Buy   </button> </td>';
         echo '</tr>';
    
         }
          echo "</td>";
    }
    
    catch(PDOException $e) {
        echo "Error: " . $e->getMessage();
    }
    $conn = null;
    echo "</table>";
    
    ?>
    
    <br>
    <br>
    <br>
    
    </form>
    <script>
    form=document.getElementById("sellAndBuy");
    function askForSell() {
        form.action="sellAndBuy.php";
        form.submit();
    }
    function askForBuy() {
        form.action="buyProducts.php";
        form.submit();
    }
    
    </script>
    
    
    </body>
    </html>
    

2 个答案:

答案 0 :(得分:0)

您可以使用函数传递产品ID,然后将其填充到输入字段中,如:

...

    echo '<td> <button type="submit" onclick="askForSell('.$v->product_id.')">  Sell  </button>  </td>
                <td> <button type="submit" onclick="askForBuy('.$v->product_id.')">   Buy   </button> </td>';

...

function askForSell(id) {
    form.action="sellAndBuy.php";
    form['id'].value = id;
    form.submit();
}
function askForBuy(id) {
    form.action="buyProducts.php";
    form['id'].value = id;
    form.submit();
}

答案 1 :(得分:0)

您可以根据没有JS按下的按钮提交变量:

<button type="submit" name="id" value="1">Sell</button>

此外,按钮可以包含formaction属性。