使用PHP动态创建网页以通过URL传递变量

时间:2012-03-07 12:38:28

标签: php url variables

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 个答案:

答案 0 :(得分:1)

首先,我假设&#34; fullarticle&#34;只是一篇文章,因此您不需要在该模板中拥有foreach()

其次,您使用mysqli_query提取数据,因此您的值应该是:

$articleData = $result->fetch_object()

然后:

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

此外,在您的mysqli_real_escape_string来电中,您使用$_POST代替$_GET来获取ID值,请修复此问题。

答案 1 :(得分:0)

OMG!

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

为什么不断地交换进出PHP - 它很混乱,使得代码难以调试/读取。

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

为什么在通过GET发送参数时发布POST,确实无法提交表单?

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

$ ID? $ id是多少?通常'?'标记查询的开始,但随后的表达由'&amp;'分隔。您似乎正在解析index.php中的viewarticle参数 - 但是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数组如何工作感到困惑。