Как исправить ошибку «If (isset ($ _ POST ['Id']))» при редактировании формы в приложении CRUD на основе PHP? - PullRequest
0 голосов
/ 29 мая 2019

"if (isset ($ _ POST [" titleId "]) &&! Empty ($ _ POST [" titleId "])" в моем коде возвращает ложное значение.

Я работаю над приложением CRUD, модал вставки работает нормально, теперь я застрял в части его обновления. Поэтому, когда вы нажимаете на значок обновления, он получает правильный titleId в URL, но первое условие «if» возвращает false, и, следовательно, обновление не работает.

Вот что я пробовал до сих пор.

admin.php
<?php
$typeId = filter_input(INPUT_GET, "type");
$titleId = filter_input(INPUT_GET, "titleId");
$active = "admin" . $typeId;
require_once './pages/header.php';
require_once './functions/queries.php';
$getAll = Queries::getAllTitle($typeId);




?>
<div class="container">
<div class="wrapper">
        <div class="container-fluid">
            <div class="row">
                <div class="col-md-12">
                    <div class="page-header clearfix">
                        <h2 class="pull-left"></h2>
                        <button type="button" class="btn btn-success btn-sm" data-toggle="modal" data-target="#facultyAddModal">Add Title</button> 
                    </div>

<!--<div class="container">
    <button type="button" class="btn btn-success btn-sm" data-toggle="modal" data-target="#facultyAddModal">Add Title</button>    
    <br><br>-->
    <div class="panel-group" id="titleAccordion">
        <?php      
        for ($i = 0; $i < count($getAll); $i++) {         
            echo <<<HTML
                <div class="panel panel-default">
                    <div class="panel-heading"><h4 class="panel-title">
                        <a data-toggle="collapse" data-parent="#titleAccordion" href="#collapseF{$i}">{$getAll[$i]['title']}</a></h4>
                    </div>
                        <div id="collapseF{$i}" class="panel-collapse collapse" >
                        <div class="panel-body">
                            <div class="table-responsive">
                                <table class="table table-condensed"><tbody>
                                <tr><td>Title:</td><td>{$getAll[$i]['title']}</td></tr>
                                <tr><td>Units:</td><td>{$getAll[$i]['units']}</td></tr>
                                <tr><td>Category:</td><td>{$getAll[$i]['category']}</td></tr>  
                            <tr><td>
                                <tr><td><input type="hidden" id="titleId" name="titleId" value="{$getAll[$i]['titleId']}"> </tr><td>
                             <a href='edit.php?titleId={$getAll[$i]['titleId']}' title='Update Record' data-toggle='tooltip'><span class='glyphicon glyphicon-pencil'></span></a>
                             <a href='delete.php?titleId={$getAll[$i]['titleId']}' title='Delete Record' data-toggle='tooltip'><span class='glyphicon glyphicon-trash'></span></a>
                            </tr></td>

                                </tbody></table>      
                            </div>

                      </div>
                     </div>  
                </div>
HTML;
       }
       ?>
    </div>
            </div>    
            </div>
        </div>
    </div>
</div>    


<!--    Title Add Modal-->

       <div class="modal fade" id="facultyAddModal" role="dialog">
           <div class="modal-dialog">
            <div class="modal-content"> 
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Add Title</h4>
                </div>
                <div class="modal-body">
                 <div id="adminResult" class="hide" role="alert">
               <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                 <div id="resultAdminContent"></div>
                </div>  
                    <form class="cmxform" id="adminForm" method="post">
                <label for="Activity">ActivityAttended (required)</label>
                <input class="form-control" id="adminTitle" name="title" type="text" required>
            <br>
                <label for="units">Units (required)</label>
                <input class="form-control" id="adminUnits" type="number" name="units" required>
            <br>
                <label for="Category">Category (Optional)</label>
                <input class="form-control" id="adminCategory" type="text" name="category">
            <br>
                <?php echo 
                 '<input type="hidden" id="addadminTypeId" value="'.$typeId.'">';
                ?>
                <?php echo 
                 '<input type="hidden" id="titleId" name="titleId" value="'.$titleId.'">';
                ?>

                <button class="btn btn-info btn-primary" type="submit">Submit</button>
            <br>
            <br>
        </form>
          </div>
            </div>
          </div>
        </div>


update.php

<?php
require_once 'functions/db_connection.php';
 $conn = DB::databaseConnection();
$title = $units = $category = "";  

if(isset($_POST["titleId"]) && !empty($_POST["titleId"])){

        $titleId = $_POST['titleId'];


        $sql =  "UPDATE title SET title = :title, units = :units, category = :category WHERE titleId = :titleId";

       if($stmt = $conn->prepare($sql))
        {
            // Bind variables to the prepared statement as parameters
           $stmt->bindParam(':titleId', $titleId);          
           $stmt->bindParam(':title', $title);
           $stmt->bindParam(':units', $units);
           $stmt->bindParam(':category', $category);
           if ($stmt->execute()) {
              header("location: index.php");
                exit();
            } else{
                echo "Something went wrong. Please try again later.";
            } 

        unset($stmt);
    }


    unset($conn);
} else{

    if(isset($_GET["titleId"]) && !empty(trim($_GET["titleId"]))){
        $titleId =  trim($_GET["titleId"]);

        $sql = "SELECT * FROM title WHERE titleId = :titleId";
        if($stmt = $conn->prepare($sql))
        {
            $stmt->bindParam(':titleId', $titleId); 
            if ($stmt->execute()){
                   if($stmt->rowCount() == 1){
                $result = $stmt->fetch(PDO::FETCH_ASSOC);    
                    // Retrieve individual field value
                    $title = $result["title"];
                    $units = $result["units"];
                    $category = $result["category"];
                } else{
                    echo"error1";
                    exit();
                }

            } else{
                echo "Oops! Something went wrong. Please try again later.";
            }
        }


        unset($stmt);


        unset($conn);
    }  else{
        // URL doesn't contain id parameter. Redirect to error page
        echo"error2";
        exit();
    }
}
?>

<!--<!DOCTYPE html>-->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Update Record</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
        .wrapper{
            width: 500px;
            margin: 0 auto;
        }
    </style>
</head>

<body>

    <div class="wrapper">
        <div class="container-fluid">
            <div class="row">
                <div class="col-md-12">
                    <div class="page-header">
                        <h2>Update Record</h2>
                    </div> 
    <form action="<?php echo htmlspecialchars(basename($_SERVER['REQUEST_URI'])); ?>" method="post">
                <label for="Activity">Title</label>
                <input class="form-control" id="adminTitle" name="title" type="text" value="<?php echo $title; ?>" required>

            <br>
                <label for="units">Units (required)</label>
                <input class="form-control" id="adminUnits" type="number" name="units" value="<?php echo $units; ?>" required>
            <br>
                <label for="Category">Category (Optional)</label>
                <input class="form-control" id="adminCategory" type="text" value="<?php echo $category; ?>" name="category">
            <br>
                <input type="hidden"  name="titleId" value="<?php echo $titleId; ?>">
                <button class="btn btn-info btn-primary" type="submit">Submit</button>
            <br>

            <br>
        </form>
                </div>
            </<div> 
        </div>   
       </div>      
    </div>        
</body>
</html>


Единственная цель здесь - заставить работать форму обновления, пользователь должен иметь возможность обновлять записи выбранного заголовка.

1 Ответ

0 голосов
/ 29 мая 2019

Я не знаю, Crud, но я думаю, что есть способ немного отладить:

например, попробуйте это:

if(isset($_POST["titleId"]) && !empty($_POST["titleId"])){
   // test if you are here:
   echo 'hi, yeah I am here!';
}

или это

<code>echo '<pre>';
var_dump($_POST);
echo '
';// до: if (isset ($ _ POST ["titleId"]) &&! empty ($ _ POST ["titleId"])) {// ...}

также, посмотритев

error_get_last()['message']
...