html表单帖子没有发送变量数据

时间:2017-04-02 06:23:18

标签: php html forms post

点击“删除”(提交)后:我可以告诉它处理表单,因为我收到错误“你忘了选择要删除的供应商。”。

表单本身是使用PHP生成的。当我检查HTML输出时,我看到值在那里。但是当它进入POST时,没有任何结果。我正在测试并使用本地主机,所以除了现有的操作链接之外,我不确定我还能修改什么。

我在另一个删除表单中有完全相同的代码,它工作正常。我确实复制了另一个表单来创建这个表单,只是更改了SQL / Variable名称。

form with open drop down form with closed drop down

PHP代码:

#delete vendor
require('includes/mysqli_connect.php');

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $errors = array(); //array to collect errors 

    //check to ensure fields are filled out
    if (!empty($_POST['vendor'])) {
        $vendor = trim($_POST['vendor']);
    }
    else {
        $errors[] = "<p>You forgot to select a vendor to delete</p>";
    }

    if (empty($errors)) {
        //insert information into appt table
        $query = "UPDATE vendors_t SET active = 0 WHERE vendorID = $vendor;";
        $result = mysqli_query($dbc, $query);
        if($result){
            echo '<div class="alert alert-success" role="alert">';
            echo '<h2>Thank you!</h2>';
            echo '<p> Your request to delete vendorID ' . $customerID . 'has been completed </p></div>';
        } else {
            echo "Error updating record: " . mysqli_error($dbc);
        }
    } else{
        echo '<div class="alert alert-danger" role="alert"><br>';
        echo '<h2>Errors Detected</h2>';
        echo '<p>The following errors occured:<br/>';
        foreach ($errors as $msg) {
            echo "$msg<br/>\n";
        }
        echo '</p><p>Please try again. </p></div>';
    }

}

HTML代码

<div class="container standout" >
    <div class="col-lg-12">
        <h2>Delete a vendor</h2>
        <p> Please select a vendor to delete.</p>
    </div>
    <div class="row">
        <form action="index.php?pagelet=deletevendor" method="post">
            <div class="form-group col-md-4">
                <label for="vendor">Vendors</label>
                <select name="vendor" class="form-control">
                    <option name="vendor" selected disabled>Choose here</option>
                    <?php
                        $query = "SELECT vendorID, contactFname, contactLname, businessName FROM vendors_T WHERE active = 1;";
                        $result = mysqli_query($dbc, $query);

                        while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {                   
                            echo '<option name="vendor" value="'.$row['vendorID'].'">'
                                    .$row['vendorID'].' '.$row['businessName']
                                    .' '.$row['contactFname'].' '.$row['contactLname']
                                .'</option>';
                        }?>
                </select>
                <br>
                <br>
                <input class="btn btn-primary" id="submit" type="submit" value="Delete">
            </div>
        </div>
    </form>
</div>

2 个答案:

答案 0 :(得分:0)

您的选项名称应该是供应商ID(我推测)的值,当然不是“供应商”。

答案 1 :(得分:0)

从选项&amp;中删除name =“vendor”删除选定的两个工作。

删除name =“vendor”后 - 我添加了选择的后退,它仍然有效。  谢谢!!