Динамическое создание веб-страницы с использованием PHP для передачи переменных через URL - PullRequest
0 голосов
/ 07 марта 2012

addarticle.html.php

    <?php foreach ($articles as $article): ?>
        <li>
            <form action="" method="post">
                <div>
                <a href="?viewarticle?id=<?php echo'$id' ?>">
                <?php echo htmlout($article['id']);?>
                <?php echo htmlout($article['summary']);?>
                </a>

                </div>
            </form>
        </li>
        <?php endforeach; ?>

index.php

    if(isset($_GET['viewarticle']))
    {
    include_once $_SERVER['DOCUMENT_ROOT'] . '/ArticleManager/Includes/db.inc.php';
    $id = mysqli_real_escape_string($link, $_POST['id']);

    // Get articles belonging to author
    $sql = "SELECT summary FROM articles WHERE id='$id'";
    $result = mysqli_query($link, $sql);
    if (!result)
    {
        $error = 'Error getting full article.';
        include 'error.html.php';
        exit();
    }
        include 'fullarticle.html.php';
        exit();
    }

fullarticle.html.php

       <form action="" method="post">
        <?php foreach ($articles as $article): ?>

                <div>
                    <?php echo htmlout($article[$id]['id']);?>
                    <?php echo htmlout($article[$id]['summary']);?>

                </div>
       </form>

Ниже приведено приложение со статьейпользователь нажимает на определенный заголовок (из addarticle.html.php) и динамически создает новую страницу с полной статьей, отображаемой для чтения.У меня возникают проблемы при передаче переменной с вышеупомянутой страницы на страницу fullarticle.html.php.Любые идеи о том, как правильно заставить приложение динамически создавать новую страницу, загружая конкретную информацию о статье из базы данных после нажатия

<a href="?viewarticle?id=<?php echo'$id' ?>">

?

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Во-первых, я предполагаю, что "полная статья" - это всего лишь одна статья, поэтому вам не нужно иметь foreach() в этом шаблоне.

Во-вторых, вы извлекаете данные, используя mysqli_query, поэтому ваши значения должны быть в:

$articleData = $result->fetch_object()

Тогда:

$articleData['id']
$articleData['summary']

Кроме того, в вашемmysqli_real_escape_string вызов, вы используете $_POST вместо $_GET для получения значения ID, исправьте это.

0 голосов
/ 07 марта 2012

OMG!

<?php foreach ($articles as $article): ?>
    <li>

Почему постоянное переключение в PHP и из него - это грязно и затрудняет отладку / чтение кода.

        <form action="" method="post">

Почему POST при отправкепараметры через GET, действительно нет способа отправить форму?

            <div>
            <a href="?viewarticle?id=<?php echo'$id' ?>">

$ id?Какой $ id?Условно '?'отмечает начало запроса, но последующие эксперименты разделяются знаком «&».Похоже, вы анализируете параметр viewarticle в index.php - но ни href, ни форма не отправляют туда данные.

            <?php echo htmlout($article['id']);?>

Что делает htmlout ()?Почему на отдельной строке PHP?Зачем закрывать и удалять теги PHP?

            <?php echo htmlout($article['summary']);?>

И снова!

            </div>
        </form>
    </li>
    <?php endforeach; ?>

Предполагается, что загадочной переменной на самом деле является $ article ['id'] ...

<?php 
foreach ($articles as $article) {
    print "<li><a href='/?viewarticle&id=" . $article['id']
      . "'>" . htmlout($article['id'])
      . htmlout($article['summary'])
      . "</a></li>\n";
}
?>

Остальная часть вашего кода также запуталась в том, как работает html и как массивы phpработа.

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