簡體   English   中英

如何用與從PHP下拉列表中選擇的項目有關的適當信息填充文本框?

[英]How to populate a textbox with the appropriate information related to the item selected from a drop down list in PHP?

我正在創建一個表單,該表單允許用戶輸入他們希望在表單中擁有的產品行數。 然后在相應的行中,可以從下拉列表中選擇具有Product_ID和Product_Name的產品。 使用選定的項目,它應從表中拉出Product_Cost並填充“單價”文本框。 我似乎無法使文本框填充正確的數據。 我的if語句if (isset($_POST['product' . $i])){似乎無法正常工作,它的運行就像該語句為假。 我想說的是“如果選擇框選擇了一個選項,請選擇該選項並在數據庫中找到它的對應行,並獲取該行在該產品中找到的價格,然后填充單價文本框。”

<? require_once("connect_to_DB.php"); //inserts contents of this file here ?>

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Order Form</title>
    <meta charset="utf-8">

</head>
    <body>

        <? 

        connectDB();

        $sql = "SELECT * FROM product";
        $sql2 = "SELECT DISTINCT emp_id, emp_fname, emp_lname FROM employee";
        $sql3 = "SELECT DISTINCT status_id FROM salesorder ORDER BY status_id asc";
        $sql4 = "SELECT * FROM salesorder ORDER BY order_id desc";

        $result = mysqli_query($db, $sql) or die("SQL error: " . mysqli_error());
        $result2 = mysqli_query($db, $sql2) or die("SQL error: " . mysqli_error());
        $result3 = mysqli_query($db, $sql3) or die("SQL error: " . mysqli_error());
        $result4 = mysqli_query($db, $sql4) or die("SQL error: " . mysqli_error());

        //This is for the options in the product list box
        $options = '<option value="selectProduct">Select Product</option>';

        while($row = mysqli_fetch_array($result,MYSQLI_NUM)){

            $options .= '<option value="' . $row[0] . '">' . $row[0] . ' - ' . $row[2] . '</option>';
        }

        $row2 = mysqli_fetch_array($result2);
        $row3 = mysqli_fetch_array($result3);
        $row4 = mysqli_fetch_array($result4);

        ?>

    <div id="order-wrap">
        <form method="post" action="example.php">
            <table class="orderInfo"><br>
                <tr>
                    <th class="textCol">Product Rows:</th>
                    <td class="inputCol"><input type="text" name="rows"></td>
                    <td><input class="update" type="submit" name="update" value="Update"></td>
                    <td class="inputCol"></td>
                </tr>
            </table>
        </form><!-- Order Rows -->
        <form class="orderform" action ="order-report.php"  METHOD = "post">
            <h2>Order Form</h2>

            </table>

        <!-- Where the product rows input show go ??? -->
        <table class="bottomTable">
            <tr>
                <th class="textCol">Product</th>
                <th class="textCol">Quantity</th>
                <th class="textCol">Unit Price</th>
                <th class="textCol">Total Price</th>
            </tr>

        <?
            if (isset($_POST['update']))
            {
                //Execute this code if the update button is clicked.
                $num = $_POST['rows'];

                for ($i=0; $i<$num; $i++) { ?>

                    <tr>
                        <td class="inputCol2">
                            <select name="'product<?= $i ?>'">
                                <?
                                    echo $options;
                                 ?>
                            </select>
                        </td>
                        <td class="inputCol2"><input type="text" name="'quantity<?= $i ?>'" ></td>

                        <? if (isset($_POST['product' . $i])){ ?>

                            <td class="inputCol2"><input type="text" name="'unit<?= $i ?>'" value="<?= $row[3] ?>" placeholder="$" ></td>

                        <? } else { ?>

                            <td class="inputCol2"><input type="text" name="'unit<?= $i ?>'" value="" placeholder="$"></td>

                        <? } ?>

                        <td class="inputCol2"><input type="text" name="'total<?= $i ?>'" placeholder="$"></td>
                    </tr>
                <? } ?>
                    <tr>
                        <td class="textCol"></td>
                        <td class="textCol"></td>
                        <td class="textCol">Total Order:</td>
                        <td class="inputCol2"><input type="text" name="totalfinal" placeholder="$"></td>
                    </tr>
                </table>
                <input class="submit" type="submit" value="Submit" name="orderSubmit"/> 
            </form>
            <? } else {?>
                    <tr>
                        <td class="textCol"></td>
                        <td class="textCol"></td>
                        <td class="textCol">Total Order:</td>
                        <td class="inputCol2">$<input type="text" name="totalfinal"></td>
                    </tr>
                </table>
                <input class="submit" type="submit" value="Submit" name="orderSubmit"/> 
            </form>

            <? } ?>
       <?
            mysqli_free_result($result);
            mysqli_free_result($result2);
            mysqli_free_result($result3);
            mysqli_free_result($result4);
            mysqli_close($db);
        ?>
    </div>
</body>

那里似乎有一些語法錯誤,例如:

<select name="'product<?= $i ?>'">
    <?
        echo $options;
     ?>
</select>

似乎在某些情況下使用了這種引號-我認為它們應該更像是:

<select name="product<?= $i ?>">
    <?
        echo $options;
     ?>
</select>

另外,在某些地方,盡管有人指出不同之處,但您並未為php塊使用正確的開始標記。 通常,它們應該是:

<?php
    /* statements */
?>

要么

<?="print out this string";?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM