Почему кнопка отправки внутри тега td не работает? - PullRequest
0 голосов
/ 05 марта 2020

Как говорит заголовок, кнопка "eliminaRecensioneBTN" внутри td не работает. Я попытался поместить кнопку за пределы тега, и это сработало, но если я поместил эту кнопку за пределы тега td, это сработало; Мне нужно это внутри.

PHP код:

    <?php
    session_start();

    if (!(isset($_SESSION['autorizzato']) && $_SESSION['autorizzato'] == true)) {
        header("Location: login.php");
    }
    $nomepagina = 'sezioni';

    $conn = mysqli_connect('localhost', 'root', '', 'gestione');
    if (!$conn) {
        die("Connessione non riuscita: ".mysqli_connect_error());
    }

    function prendiRecensioni($conn){
        $sql = "SELECT * FROM recensioni";
        $result = $conn->query($sql);
        while($row = $result->fetch_assoc()){
            echo "<form method='POST' action='".eliminaRecensione($conn)."'>";
                echo "<tr>";
                    echo "<td>".$row['id']."</td>";
                    echo "<td>".$row['nomevisualizzato']."</td>";
                    echo "<td>".$row['pubblicazione']."</td>";
                    echo "<td>".mb_strimwidth($row['descrizione'], 0, 20, "...")."</td>";
                    echo "<input type='hidden' name='id' value='".$row['id']."' />";
                    echo "<td class='text-right'>";
                        echo "<button type='submit' name='eliminaRecensioneBTN' class='btn btn-danger btn-xs'><i class='fa fa-trash'></i>&nbsp;&nbsp;Elimina</button>";
                    echo "</td>";
                echo "</tr>";
            echo "</form>";
        }
    }

    function eliminaRecensione($conn){
        if(isset($_POST['eliminaRecensioneBTN'])){
            $id = $_POST['id'];
            $sql = "DELETE FROM recensioni WHERE id='$id'";
            $result = $conn->query($sql);
            echo "<meta http-equiv='refresh' content='0'>";
        }
    }
?>

Я не знаю, как исправить, так как я могу это исправить?

1 Ответ

0 голосов
/ 06 марта 2020

Удалите атрибут action из тега <form>, чтобы форма POST перешла на тот же URL-адрес, на котором она находится.

В верхней части файла проверьте, опубликована ли форма, и удалите. сообщение, использующее запрос SQL.

После этого получите результаты и отобразите формы, используя HTML.

Не забудьте поместить тег <table> вокруг тегов <tr> и <td>!

Поместите вход hidden внизу тега <form>, за пределами <table>. Все равно не будет отображаться!

<?php
$conn = mysqli_connect( 'localhost', 'root', '', 'gestione' );
if ( ! $conn ) {
    die( "Connessione non riuscita: " . mysqli_connect_error() );
}

if ( isset( $_POST['eliminaRecensioneBTN'] ) && isset( $_POST['id'] ) ) {
    $conn->query( "DELETE FROM recensioni WHERE id='$_POST['id']'" );
    echo '<meta http-equiv="refresh" content="0">';
}

$result = $conn->query( 'SELECT * FROM recensioni' );
?>

<?php while ( $row = $result->fetch_assoc() ): ?>
    <form method="POST">
        <table>
            <tr>
                <td><?php echo $row['id']; ?></td>
                <td><?php echo $row['nomevisualizzato']; ?></td>
                <td><?php echo $row['pubblicazione']; ?></td>
                <td><?php echo mb_strimwidth( $row['descrizione'], 0, 20, '...' ); ?></td>
                <td class="text-right">
                    <button type="submit" name="eliminaRecensioneBTN" class="btn btn-danger btn-xs">
                        <i class="fa fa-trash"></i>&nbsp;&nbsp;Elimina
                    </button>
                </td>
            </tr>
        </table>
        <input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
    </form>
<?php endwhile; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...