Dodanie formularzy dynamicznie w php

0

Chciałem zrobić aby użytkownik dodał ile roślin i nawozów ma dodać, i w tym celu dodałem formularz który dodaje formularz, który dodaje wartości do bazy danych, aktualnie wyświetla "dodalem nowe doswiadcznie", ale nie wiem czy to co napisałem ma sens, a wyświetla mi coś takiego

4p2.jpg

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <title>Nadzorca Page</title>
        <link rel="stylesheet" href="css/style.css">
        <style>
/*            p{  display:inline-block; width: 180px;}*/
        </style>
    </head>
<body>
 
    <h3>Dodanie nowego doświadczenia</h3>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
    <p><input name='ilosc_ros' type="text" placeholder="Dodaj ilość roślin"></p>
    <p><input name='ilosc_nawoz' type="text" placeholder="Podaj ilość nawozów"></p>
    <p><input name="add_form" type="submit" value="Dodaj"></p>
</form>

<?php
require("./connect.php");

 if(isset($_POST['add_form'])){
     echo '<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">';
     for($i=0; $i < $_POST['ilosc_ros']; ++$i)
        echo '<p><input name="roslina" typ="text" placeholder="roślina.."></p>';
     for($i=0; $i < $_POST['ilosc_nawoz']; ++$i)
        echo '<p><input name="nawoz".$i typ="text" placeholder="nawóz.."></p>';
     echo '<p><input name="add_base" type="submit" value="Dodaj doświadczenie"></p>'; 
    echo '</form>';
 }
 if(isset($_POST['add_base'])){
     echo 'Dodałem nowe doświadczenie!';
 }

?>
    
    
</body>
</html>

0

Ta linijka może być tak zapisana


     echo '<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">';

     echo '<form action=" $_SERVER['PHP_SELF']" method="post">';
0

wykonać :

 if(isset($_POST['add_base'])){
     
     
     echo 'Dodałem nowe doświadczenie!';
 }

które jest w tym samym pliku

0
<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <title>Nadzorca Page</title>
        <link rel="stylesheet" href="css/style.css">
        <style>
/*            p{  display:inline-block; width: 180px;}*/
        </style>
    </head>
<body>
    
    <h3>Wyświetlenie wyników</h3>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
    <p><input name="limit" type="text" placeholder="podaj limit"></p>
    <p><input name='show_base' type="submit" value="Pokaż wyniki"></p> 
</form>
    <h3>Dodanie nowego doświadczenia</h3>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
    <p><input name='ilosc_ros' type="text" placeholder="Dodaj ilość roślin"></p>
    <p><input name='ilosc_nawoz' type="text" placeholder="Podaj ilość nawozów"></p>
    <p><input name="add_form" type="submit" value="Dodaj"></p>
</form>


  
<?php
require("./connect.php");
 if(isset($_POST['show_base']))
{
     
    $sql ="SELECT id_wyniku,nowych_roslin,sr_wielkosc_rosl,data,nr_pow FROM wyniki RIGHT JOIN powierzchnia ON wyniki.id_pow = powierzchnia.id_pow limit ".$_POST['limit'];
    $result = $conn->query($sql);
    
    if ($result->num_rows > 0) {
        echo "<table border='1' cellpadding='10'>";
        echo "<tr><th>ID</th><th>nowych roślin</th><th>średnia wielkość roślin</th><th>data</th><th>NR powierzchni</th></tr>";
        while($row = $result->fetch_assoc()) {
            echo "<tr>";
            echo "<td>". $row["id_wyniku"]. "</td>";
            echo "<td>". $row["nowych_roslin"]."</td>";
            echo "<td>". $row["sr_wielkosc_rosl"]."</td>";
            echo "<td>". $row["data"]."</td>";
            echo "<td>". $row["nr_pow"]."</td>";
            echo "</tr>";
        }
      
    }
    else echo "0 wyników";
 }

 if(isset($_POST['add_form'])){
     echo '<form action=" $_SERVER["PHP_SELF"]" method="post">';
     for($i=0; $i < $_POST['ilosc_ros']; ++$i)
        echo '<p><input name="roslina" typ="text" placeholder="roślina.."></p>';
     for($i=0; $i < $_POST['ilosc_nawoz']; ++$i)
        echo '<p><input name="nawoz".$i typ="text" placeholder="nawóz.."></p>';
     echo '<p><input name="add_base" type="submit" value="Dodaj doświadczenie"></p>'; 
    echo '</form>';
     
 }
 if(isset($_POST['add_base'])){
     
     
     echo 'Dodałem nowe doświadczenie!';
 }

?>
    
    
</body>
</html>

1

Tutaj masz poprawioną stronę.

<!DOCTYPE html>
<html>
 
    <head>
        <meta charset="utf-8">
        <title>Nadzorca Page</title>
        <link rel="stylesheet" href="css/style.css">
        <style>
/*            p{  display:inline-block; width: 180px;}*/
        </style>
    </head>
<body>

    <h3>Wyświetlenie wyników</h3>
<form action=<?php echo $_SERVER['PHP_SELF'];?> method="post">
    <p><input name="limit" type="text" placeholder="podaj limit"></p>
    <p><input name='show_base' type="submit" value="Pokaż wyniki"></p> 
</form>
    <h3>Dodanie nowego doświadczenia</h3>
<form action=<?php echo $_SERVER['PHP_SELF'];?> method="post">
    <p><input name='ilosc_ros' type="text" placeholder="Dodaj ilość roślin"></p>
    <p><input name='ilosc_nawoz' type="text" placeholder="Podaj ilość nawozów"></p>
    <p><input name="add_form" type="submit" value="Dodaj"></p>
</form>
 
<?php
//require("./connect.php");
 if(isset($_POST['show_base']))
{
 
    $sql ="SELECT id_wyniku,nowych_roslin,sr_wielkosc_rosl,data,nr_pow FROM wyniki RIGHT JOIN powierzchnia ON wyniki.id_pow = powierzchnia.id_pow limit ".$_POST['limit'];
    $result = $conn->query($sql);
 
    if ($result->num_rows > 0) {
        echo "<table border='1' cellpadding='10'>";
        echo "<tr><th>ID</th><th>nowych roślin</th><th>średnia wielkość roślin</th><th>data</th><th>NR powierzchni</th></tr>";
        while($row = $result->fetch_assoc()) {
            echo "<tr>";
            echo "<td>". $row["id_wyniku"]. "</td>";
            echo "<td>". $row["nowych_roslin"]."</td>";
            echo "<td>". $row["sr_wielkosc_rosl"]."</td>";
            echo "<td>". $row["data"]."</td>";
            echo "<td>". $row["nr_pow"]."</td>";
            echo "</tr>";
        }
 
    }
    else echo "0 wyników";
 }
 
 if(isset($_POST['add_form'])){
     echo "<form action= $_SERVER[PHP_SELF] method=\"post\">";
     for($i=0; $i < $_POST['ilosc_ros']; ++$i)
        echo '<p><input name="roslina" typ="text" placeholder="roślina.."></p>';
     for($i=0; $i < $_POST['ilosc_nawoz']; ++$i)
        echo '<p><input name="nawoz".$i typ="text" placeholder="nawóz.."></p>';
     echo '<p><input name="add_base" type="submit" value="Dodaj doświadczenie"></p>'; 
    echo '</form>';
 
 }
 if(isset($_POST['add_base'])){
 
     echo 'Dodałem nowe doświadczenie!';
 }
 
?>
 
</body>
</html>
1

A nie lepiej sobie w jquery zrobić dynamiczne dodawanie pół typu Input?
Coś takiego jak tutaj: jquery dynamic form
Potem od strony PHP będziesz miał tylko zapisywanie do bazy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1