无法连接数据库并处理POST请求

时间:2018-02-17 05:11:47

标签: php html database

您好我正在使用预定义的模板,我正在尝试使用php以POST / GET请求的形式从输入空间获取一些数据。但我无法这样做,我如何整合数据库并处理php参数?

<div class="w3_agileits_card_number_grids">
     <div class="w3_agileits_card_number_grid_left">
        <div class="controls">
           <input type="text" placeholder="Adhaar" name="Adhaar" required="">
        </div>
    </div>
    <div class="controls">
        <input type="text" placeholder="Town/City" name="city" required="">
    <?php 
    if(isset($_GET['Adhaar']) && $_GET ['Adhaar']!=NULL)
    {
       $x = $_GET['Adhaar'];
        echo "Your Adhaar is $x";
    ?>
    }

3 个答案:

答案 0 :(得分:1)

Hello change your code to this

    <div class="w3_agileits_card_number_grids">
        <div class="w3_agileits_card_number_grid_left">
            <div class="controls">
             <input type="text" placeholder="Adhaar" name="Adhaar" required="">
            </div>
        </div>
    <div class="controls">
       <input type="text" placeholder="Town/City" name="city" required="">
             <?php 
                  if(isset($_GET['Adhaar']) && $_GET ['Adhaar']!=NULL)
                            {
                              $x = $_GET['Adhaar'];
                              echo "Your Adhaar is $x";
                              //Connect to the database here

                            }
             ?>
    </div>
</div>

对于数据库连接,它取决于您使用的数据库,但您可以从这里开始。一个简单的Google查询,为您提供所需的内容

答案 1 :(得分:1)

我为你准备了一个可能派上用场的例子。这显示了如何使用PHP提交表单打印用户在页面上输入的一些值。我还添加了一些注释掉的代码,您可以通过将action值更改为文件路径来复制并移动到单独的脚本并进行调用。

enter image description here

PHP脚本:

<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        // try {

        // Connect to the database:
        // $db = mysqli_connect('localhost', 'username', 'password', 'database','port');
        // Retrieve all records:
        // $sql = 'SELECT * FROM categories';
        // $result = $db->query($sql);

        // } catch (Exception $e) {
        // $error = $e->getMessage();
        // }

        // echo '<pre>';
        // Pass MYSQLI_BOTH or MYSQLI_ASSOC as the argument to change the array type
        // $all = $result->fetch_all();
        // echo json_encode($all);
        // echo '</pre>';
        // $db->close();

        $data = [
            "BOB" => "AWESOME",
            "JOE" => "AVERAGE",
            "TOM" => "COOL"
        ];
    }
?>

接下来,我们有表格。我添加了此表单,因为您需要将其提交到页面。 (好吧,你不要&#34;需要&#34;它可以让生活变得轻松。)

<div class="container">
    <form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">

        <div class="form-group">
           <input class="form-control"
                  type="text"
                  placeholder="Adhaar"
                  name="adhaar"
                  required
                  value="<?= isset($_POST['adhaar']) ? $_POST['adhaar'] : '' ?>">
        </div>

        <div class="form-group">
            <input class="form-control"
                   type="text"
                   placeholder="Town/City"
                   name="city"
                   required
                   value="<?= isset($_POST['city']) ? $_POST['city'] : '' ?>">
        </div>

        <div class="form-group">
            <button type="submit" class="btn btn-primary">CLICK ME!</button>
        </div>

    </form>
    <?php if (isset($_POST['adhaar'])) : ?>
        <p>Hi there <?= $_POST['adhaar'] ?></p>
    <?php endif ?>

    <?php if (isset($_POST['city'])) : ?>
        <p><?= $_POST['city'] ?> is a great place to live!</p>
    <?php endif ?>

    <?php if (isset($data)) : ?>
        <?php foreach ($data as $key => $value) : ?>
            <p><?= $key ?> - <?= $value ?></p>
        <?php endforeach ?>
    <?php endif ?>
</div>

如果文件在$ _POST全局数组中找到,则该文件的最后一段只是将信息输出到页面上。

<?php if (isset($_POST['adhaar'])) : ?>
    <p>Hi there <?= $_POST['adhaar'] ?></p>
<?php endif ?>

<?php if (isset($_POST['city'])) : ?>
    <p><?= $_POST['city'] ?> is a great place to live!</p>
<?php endif ?>

<?php if (isset($data)) : ?>
    <?php foreach ($data as $key => $value) : ?>
        <p><?= $key ?> - <?= $value ?></p>
    <?php endforeach ?>
<?php endif ?>

这里注释掉了一部分,您可以使用它从数据库中提取数据并将其传递回您的页面。如果您刚开始修改它很酷,但理想情况下,您不希望在与您的视图相同的页面上调用数据库。它应该存在于它自己的文件中。

        // try {

        // Connect to the database:
        // $db = mysqli_connect('localhost', 'username', 'password', 'database','port');
        // Retrieve all records:
        // $sql = 'SELECT * FROM categories';
        // $result = $db->query($sql);

        // } catch (Exception $e) {
        // $error = $e->getMessage();
        // }

        // echo '<pre>';
        // Pass MYSQLI_BOTH or MYSQLI_ASSOC as the argument to change the array type
        // $all = $result->fetch_all();
        // echo json_encode($all);
        // echo '</pre>';
        // $db->close();

答案 2 :(得分:0)

你应该尝试这个代码..这是有用的我只需添加一个提交按钮

<div class="w3_agileits_card_number_grids">
        <div class="w3_agileits_card_number_grid_left">
            <div class="controls">
            <form method="GET" action="xxx.php">
             <input type="text" placeholder="Adhaar" name="Adhaar" required="" />
            </div>
        </div>
    <div class="controls">
       <input type="text" placeholder="Town/City" name="city" required="" />
       <input type="submit" name="submit" value="show">
             <?php 
                  if(isset($_GET['submit']) && $_GET ['Adhaar']!=NULL)
                            {
                              $x = $_GET['Adhaar'];
                              echo "Your Adhaar is $x";
                              //Connect to the database here

                            }
             ?>

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