Php не ловит результаты для контента, но только для заголовка - PullRequest
0 голосов
/ 07 октября 2019

Итак, у меня есть код формы CRUD, где я могу публиковать темы с заголовками, редактировать / обновлять и исключать, все работает, единственная проблема, с которой я сталкиваюсь, - это обновление содержимого темы, в котором при нажатии наизменить уже опубликованную тему, она отображает только заголовок темы, но не содержимое, она по-прежнему работает, хотя, если я добавлю другое содержимое и обновлю, как правило, изменится ранее опубликованная тема на добавленную мной, я пыталсянайти ответ, но это сложно, так как я все еще начинающий с php, большая часть кода была взята из интернета, и я кое-что изменил, чтобы соответствовать моей идее.

Это обновленный код php.

<?php  include('connect.php');

// get values to update
if (isset($_GET['edit'])) {
    $id = $_GET['edit'];
    $update = true;

    $rec = mysqli_query($db,"SELECT * FROM news WHERE id=$id");
        $record = mysqli_fetch_array($rec);
        $title = $record['title'];
        $content = $record['content'];
        $id = $record['id'];
    }
?>

html

<form method="post" action="connect.php" >
    <div class="input-group">
        <input type="hidden" name="id" value="<?php echo $id; ?>">
    </div>
    <div class="input-group">
        <input type="text" name="title" placeholder="Title" value="<?php echo $title; ?>">
    </div>
    <div class="input-group">
        <textarea name="content" placeholder="Content" value="<?php echo $content; ?>"></textarea>
    </div>

<!-- form buttons -->
    <div class="input-group">
        <?php if ($update == true): ?>
            <button class="btn" type="submit" name="update">Update</button>
            <button class="btn" type="button" value="cancel" onclick="history.back();">Cancel</button>
        <?php else: ?>
            <button class="btn" type="submit" name="send">Send</button>
        <?php endif ?>
    </div>
</form>

<table>
    <div class="form">
    <?php while ($row = mysqli_fetch_array($results)) { ?>
        <tr style="border:0;font-size:30px;";>
            <td><b><?php echo $row['title']; ?></b></td>
        </tr>
        <tr style="border-radius: 5px;background-color: #ebebeb;">
            <td><?php echo $row['content']; ?></td>
        </tr>
        <!-- Delete/edit buttons -->
        <tr style="border:0;">
            <td>
                <a href="news.php?edit=<?php echo $row['id']; ?>" class="fix_btn" >Edit</a>
                <a style="float:right;" href="news.php?del=<?php echo $row['id']; ?>" class="fix_btn" 
                onclick="return confirm('Are you sure you want to delete this topic?')">Delete</a>
            </td>
        </tr>
        <tr style="height:60px; border:0;"><td></td></tr>
    <?php } ?>
    </div>
</table>

подключение к базе данных (connect.php)

<?php 
session_start();
$db = mysqli_connect('localhost', 'root', '', 'orbita');

// initialize variables
$title = "";
$content = "";
$id = 0;
$update = false;

if (isset($_POST['send'])) {
    $title = $_POST['title'];
    $contet = $_POST['content'];

    mysqli_query($db, "INSERT INTO news (title, content) VALUES ('$title', '$content')"); 
    $_SESSION['message'] = "Success!"; 
    header('location: news.php');
}

if (isset($_POST['update'])) {
$id = $_POST['id'];
$title = $_POST['title'];
$content = $_POST['content'];

mysqli_query($db, "UPDATE news SET title ='$title', content ='$content' WHERE id=$id"); 
$_SESSION['message'] = "Success update!"; 
header('location: news.php');
}

if (isset($_GET['del'])) {
$id = $_GET['del'];
mysqli_query($db, "DELETE FROM news WHERE id=$id");
$_SESSION['message'] = "Message deleted"; 
header('location: news.php');
}

?>

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Нельзя использовать attribute для textarea элементов

заменить

<textarea name="content" placeholder="Content" value="<?php echo $content; ?>"></textarea>

на

<textarea name="content" placeholder="Content"><?php echo $content; ?></textarea>

1 голос
/ 08 октября 2019

textarea не имеет атрибута value.
Попробуйте изменить его на это и посмотреть, работает ли он

<div class="input-group">
    <textarea name="content" placeholder="Content" >
        <?php echo $content; ?>
    </textarea>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...