как отправить данные на другую страницу через тег формы? - PullRequest
0 голосов
/ 09 марта 2019

Я много пытался извлечь все данные своей базы данных на другую страницу PHP и в теге формы, но я не смог этого сделать, я легко отобразил все данные в теге option, но не смог отправить их в тег action в теге form вот код.

<?php require "pages/header.php" ?>
<?php
//sesssion_start();

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "apple";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
#include "navbar.php";
$sql = "SELECT * FROM `table_3`";
$result = $conn->query($sql);

?>
    <link rel="canonical" href="https://getbootstrap.com/docs/4.3/examples/sign-in/">

<!-- Bootstrap core CSS -->
<link href="https://getbootstrap.com/docs/4.3/dist/css/bootstrap.min.css" rel="stylesheet"
    integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

        <link href="https://getbootstrap.com/docs/4.3/examples/sign-in/signin.css" rel="stylesheet">
<select id="role"  name="role" class="form-signin" class="form-control">
        <?php
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
       #echo $row['model'];
       #echo "<option value="'.$row["model"].'">";

       #echo "<option value='".$row["model"]."' href='".$row["model"]."'>";
      # echo "<a href='".$row["model"]."'>";
       #echo $row['model'];
       #echo "</a>";
      # echo "</option>";?>
      <form action="repaired.php?<?php $row['model'] ?> enctype=multipart/formdata">
      <select id="role"  name="role" class="form-signin" class="form-control">
      <option value='<?php $row['model'] ?>' href='<?php $row['model'] ?>'>
      </option>
      </select> 
      </form>
      <?php

    }
} else {
    echo "0 results";
}
#$conn->close();
?>
        </select>

1 Ответ

0 голосов
/ 09 марта 2019

Мне не совсем понятно, в чем именно твоя проблема.Кажется, вы пытаетесь передать данные с текущей страницы (с которой вы поделились кодом) на repaired.php.

Поскольку код, который вы опубликовали, (извините за грубость) беспорядок, яЯ попытаюсь добавить некоторую структуру (я, очевидно, не собираюсь тщательно ее очищать, однако, это будет ваша работа).

Во-первых, все ваши <link> теги должны быть где-то внутри вашей <head> части ... Я думаю, на вашем сайте это будет в пределах header.php

pages / header.php

<!doctype html>
<html>
  <head>
    <title>Your App</title>

    <!-- Place your <link> elements here -->
    <link rel="canonical" href="https://getbootstrap.com/docs/4.3/examples/sign-in/">

    <link href="https://getbootstrap.com/docs/4.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

    <link href="https://getbootstrap.com/docs/4.3/examples/sign-in/signin.css" rel="stylesheet">
  </head>
  <body>
    <!-- Body part begins here
         Place for header elements and navigation here, I guess -->

Затем, файл, где вы делаете все подключения и пытаетесь отправить его через вашу форму, я просто называю это action.php здесь.Поскольку я не знаю, что должно отображаться в вашем элементе <option>, я взял то же самое, что и для атрибута value.Обратите внимание, что там, где расположен while -петл, он находится ВНУТРИ вашего элемента <select> (который сам ВНУТРИ вашего элемента <form>), поскольку вам нужен только ОДИН из них.У вас будет несколько <option> элементов, поэтому они находятся внутри вашего цикла.Кроме того, я поместил кнопку отправки в конце формы, которая позволит нам отправить форму.

action.php

<?php
include "pages/header.php";

// Database variables and connection
// ...

// Data fetching and displaying
$sql = "SELECT * FROM `table_3`";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  echo '<form action="repaired.php" method="post">';
  echo '  <select id="role"  name="role" class="form-signin" class="form-control">';

  while ($row = $result->fetch_assoc()) {
    echo '    <option value="' . $row['model'] . '">' . $row['model'] . '</option>';
  }

  echo '  </select>';
  echo '  <button type="submit" name="form_send">Send</button>';
  echo '</form>';
} else {
  echo 'No data found';
}

Теперь, в течениеВаш repaired.php файл, который вам, очевидно, нужен для получения опубликованных данныхПоскольку я не знаю, что вы хотите сделать со своими данными, я могу просто опубликовать идею о том, что вы могли бы сделать.Если вы отправляете форму с помощью метода post (см. Код выше, method="post"), вы можете получить доступ к данным формы с помощью суперглобального $_POST.Это массив, в котором хранятся ваши опубликованные данные ... Атрибут name ваших элементов формы будет ключом для доступа к вашим данным.Итак, если я отправляю форму с одним входом, а вход имеет атрибут name="first_name", я могу получить доступ к его значению с помощью $_POST['first_name'] на целевой странице (атрибут action вашего <form>).В вашем случае у нас есть <select> с name="role", поэтому вы сможете получить к нему доступ, как объяснено:

repaired.php

<?php
/* 
   First we check, if the submit button was pressed... If not,
   we echo an error message, if yes, we can proceed to access the posted data
 */
if (!isset($_POST['form_send'])) {
  echo 'No data submitted';
} else {
  echo $_POST['role'];
}

MyОтвет, если он даже решает вашу проблему, далек от совершенства и не проверен, поэтому я не знаю, есть ли в нем какие-либо ошибки.Я предлагаю вам продолжать практиковать и расширять свои знания.Это очень хорошая идея, чтобы научиться отделять свой логический код от разметки.Я рекомендую вам ознакомиться с MVC или MOVE или другими архитектурными паттернами или, если вы хотите сначала пойти по более простому маршруту, почитать о механизмах шаблонов (например, Twig ).Кроме того, я предлагаю вам расширить свои знания по основам HTML ( MDN - хорошее место для этого, ИМХО), поскольку мне кажется, что у вас их пока нет, судя покак вы структурировали свои <form> части.

Я все еще надеюсь, что мой ответ помог вам вернуться на правильный путь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...