PHP не видит <input> - PullRequest
       4

PHP не видит <input>

0 голосов
/ 10 мая 2018

Когда я нажал на удаление, ничего не произошло.

Почему он не видит отправку в PHP?

Это моя функция

// this code after query and fetch
echo "<table border='1'>
       <form method='POST'>
        <tr>
        <th>Books</th>
        <th>Action</th>
        </tr>";
        foreach($result as $row){
            echo "<tr>";
            echo "<td>" . $row['nameOfBook'] . "</td>";
            echo "<td>" ."<input type='submit' name='delete' value='Delete' method='post' >" . "</td>";
            echo "</tr>";
        }
        
        echo "</table>";
        echo "</form";
       
        if(isset($_POST['delete'])){
            die("SS");
        }

1 Ответ

0 голосов
/ 10 мая 2018

Символьный список дефектов;
Из комментариев;вы не закрываете свой HTML-тег ввода, используя > или />

Вы используете переменную $statment, но она никогда не определяется в вашей функции, из имени вызываемой функции ( и тот факт, что он помечен! ), похоже, что вы используете mysqli, поэтому добавление

$statment = mysqli_query($connectin, "your query here");
$statment->fetchAll();

поможет решить эту проблему, даже передав $statment в функциюЭто, в конечном счете, ваша главная проблема здесь

Убедитесь, что вы используете теги формы вокруг своих входов и дайте ему некоторую определяющую функцию относительно того, что вы удаляете, иначе это может удалить все

Вы добавляетеmethod="post" к вашему входу - форма там, где это должно быть, форма содержит метод, а не входные данные, они есть только для сборщика / отправки данных

Если бы это сделал я, а неввод типа «отправить», я бы использовал кнопку и имел событие JavaScript (jQuery) onclick, например;

<?
function getBooks($start = 0, $limit = 2)
{
    global $connection; // Add your link into this to do queries
    $sql_start = $start * $limit;
    $sql_limit = $limit;
    // Do your query and define $statment
    $statment = mysqli_query($connection, "SELECT something FROM a_table");
    $result = $statment->fetchAll();

    // Rather than printing lots separate, add to a return value and do this once
    $return_value = "";
    $return_value .= "<table border='1'>
    <tr>
    <th>Books</th>
    <th>Action</th>
    </tr>";
    foreach($result as $row){
        $return_value .= "<tr>";
        $return_value .= "<td>" . $row['nameOfBook'] . "</td>";
        // Rather than have "submit", use a button for this and add an onclick event
        $return_value .= "<td>" ."<input type='button' name='delete' value='Delete' onclick='deleteBook({$row['bookid']})' />" . "</td>";
        $return_value .= "</tr>";
    }
    $return_value .= "</table>";

    if(isset($_POST['book_to_delete'])){
        die("SS");
    }

    return $return_value;
}
?>

<form method="POST" action="#" id="book_list">
    <!-- Add a hidden input to hold the value you want to delete -->
    <input type="hidden" id="book_to_delete" name="book_to_delete" />
    <?
    print getBooks();
    ?>
</form>

<script>
    function deleteBook(bookId)
    {
        // Set the book_to_delete and submit the form with this
        jQuery("#book_to_delete").val(bookId);
        jQuery("#book_list").submit();
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...