来自HTML页面的PHP发布请求显示空白输入字段

时间:2017-05-16 11:21:12

标签: php html mysql

目前正在寻求实现通过HTML页面编辑MySQL数据库中的详细信息的功能。页面本身显示数据库中的所有数据,这些数据与通过PHP会话登录的用户的唯一ID匹配,并将数据回显到while循环中的输入框。

当用户更改输入文本并点击保存更改链接时,它会调用编辑端点,编辑端点又调用函数文件中的编辑SQL函数。

我使用包含在按钮中的锚标记来发送正在编辑的行的ID,所有这些都位于POST操作表单中。

然而,输入文本只显示为空白,就像端点没有在输入字段中接收文本一样,尽管我尝试了很多不同的方法,但我似乎无法得到结果。

网页代码(不是整页而是仅涉及代码)

    <?php
    $connect =mysqli_connect('localhost','root','','micaddy');
    $id_query = mysqli_query($connect, "SELECT unique_id FROM users WHERE email = '{$_SESSION['login_user']}'");
    $id_array = mysqli_fetch_assoc($id_query);
    $uid = $id_array['unique_id'];

    $result = mysqli_query($connect, "SELECT * FROM clubs WHERE user_id = 
    '$uid'");

    ?>
    <div class="container">
    <div class="row">
        <div class="col-md-12">
            <div class="panel panel-default">
                <div class="panel-heading clearfix"><h3 class="panel-title"><strong>Your Golfbag</strong><button type="button" class="btn btn-info btn-lg pull-right" data-toggle="modal" data-target="#addModal">Add Club</button></h3></div>
                <?php while($row=mysqli_fetch_assoc($result)):?>
                &nbsp <span><?php if(isset($_SESSION['message'])){ echo $_SESSION['message']; unset($_SESSION['message']);} ?></span>
                    <div class="panel-body">
                        <div class="container-fluid">
                            <div class="row">
                                <div class="col-md-5">
                                    <div class="panel panel-default">
                                        <div class="panel-heading"><h3 class="panel-title"><strong><?php echo $row['club_type'];?></strong></h3></div>
                                            <div class="panel-body">
                                            <form id="" method="POST" action="editClub.php">
                                                <div class="form-group">
                                                <label for="clubType">Club ID</label>
                                                    <input type="text" readonly="" class="form-control" id="inputClubType" value="<?php echo $row['id'];?>" name="clubIdInput">
                                                </div>
                                                <div class="form-group">
                                                    <label for="clubBrand">Type</label>
                                                    <input type="text" class="form-control" id="inputclubBrand" value="<?php echo $row['club_type'];?>" name="clubTypeInput">
                                                </div>
                                                <div class="form-group">
                                                    <label for="clubBrand">Brand</label>
                                                    <input type="text" class="form-control" id="inputclubBrand" value="<?php echo $row['brand'];?>" name="clubBrandInput">
                                                </div>
                                                <div class="form-group">
                                                    <label for="clubNum">Number or Type</label>
                                                    <input type="text" class="form-control" id="inputclubNum" value="<?php echo $row['club_number'];?>" name="clubNumInput">
                                                </div>
                                                <div id="deleteClub">
                                                    <button id="submitChange" type="button" class="btn btn-danger btn-lg"><?php echo "<a href='deleteClub.php?id=".$row['id']."'>Delete</a>" ?></button>
                                                    <button type="button" class="btn btn-info btn-lg"><?php echo "<a href='editClub.php?id=".$row['id']."'>Save Changes</a>" ?></button>
                                                </div>
                                                <span><?php if(isset($_SESSION['message'])){ echo $_SESSION['message']; unset($_SESSION['message']);} ?></span>
                                                </form>
                                            </div>
                                    </div>
                                </div>
                                <div class="col-md-5">
                                    <div class="panel panel-default">
                                        <div class="panel-heading"><h3 class="panel-title"><strong>Club Image</strong></h3></div>
                                            <div class="panel-body">
                                                    <div class="form-group">
                                                        <img src="club_images/<?php echo $row['clubImg']; ?>" class="img-rounded" width="250px" height="250px" alt="Image"/>
                                                    </div>
                                            </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <span><?php if(isset($_SESSION['message'])){ echo $_SESSION['message']; unset($_SESSION['message']);} ?></span>
                    </div>
                <?php endwhile;?>

            </div>
        </div>
    </div>
</div>     

编辑端点:

<?php
session_start();
$error='';

require_once '../include/DB_Functions.php';
$db = new DB_Functions();

    if(empty($_POST['clubBrandInput']) || empty($_POST['clubNumInput'])){
        $_SESSION['message'] = "Warning: Some fields are blank! Please try again";
        header("Location: golfbag.php");
    } else{

        if(isset($_POST['clubBrandInput']) && isset($_POST['clubTypeInput']) && isset($_POST['clubNumInput'])){

        $brand = $_POST['clubBrandInput'];
        $type = $_POST['clubTypeInput'];
        $num = $_POST['clubNumInput'];

        $id = $_GET['id'];

        $club = $db->editclub($brand, $type, $num, $id);
            if($club) {
                    header("Location: golfbag.php");
                    $_SESSION['message'] = "Success! Details edited.";
                }else{
                    header("Location: golfbag.php");
                    echo $error;
                }           
        }
    }

?>

功能方法:

public function editClub($brand, $type, $num, $id){

$stmt = $this->conn->prepare("UPDATE clubs SET brand = '$brand', club_type = '$type', club_number = '$num' WHERE id = '$id'");
$result = $stmt->execute();
$stmt->close();

if($result){
    $stmt = $this->conn->prepare("SELECT * FROM clubs WHERE user_id = ?");
    $stmt->bind_param("s", $uid);
    $stmt->execute();
    $club = $stmt->get_result()->fetch_assoc();
    $stmt->close();

    return $club;
}else{
    return false;
}
}

1 个答案:

答案 0 :(得分:1)

您没有在此HTML中定义<form>

您还点击了锚链<button id="submitChange" type="button" class="btn btn-danger btn-lg"><?php echo "<a href='deleteClub.php?id=".$row['id']."'>Delete</a>" ?></button>

即使它在一个按钮中。

因此,您只会将id=".$row['id']."参数传递给端点,并且会在$_GET数组中传递,而不是$_POST数组