2012-03-07 8 views
-1

addarticle.html.phpは、動的に、次のURLを経由して変数を渡すために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> 

をWebページを作成しています記事アプリケーションには、ユーザーが特定の見出しをクリックして(addarticle.html.phpから)、完全なアートで新しいページを動的に作成できます表示されています。上記のページからfullarticle.html.phpページに変数を渡すのに問題があります。

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

をクリックした後に、アプリケーションを正しく取得してデータベースから特定の記事情報を読み込む新しいページを動的に作成する方法についてのアイデアはありますか?

答えて

1

まず、「フルパーティクル」は1つの記事であると仮定していますので、そのテンプレートにforeach()を入れる必要はありません。

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

また、あなたのmysqli_real_escape_string呼び出しで、あなたがしている:そして、

$articleData = $result->fetch_object() 

第二に、あなたがmysqli_queryを使用してデータを引き出しているので、あなたの値はにする必要がありますID値を取得するには$_GETの代わりに$_POSTを使用してください。

+0

回答が少しフォーマットされました。未来のための[Markdownヘルプ](http://stackoverflow.com/editing-help)を見てください。 – stema

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とは何ですか?従来は?クエリーの開始を示しますが、その後のexpersionsは '&'で区切られます。 index.phpのviewarticleパラメータを解析しているようですが、hrefもフォームもデータをそこに送りません。

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

htmlout()は何をしますか? PHPの別のラインではなぜですか?なぜ、PHPタグを閉じて、eropenするのですか?

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

もう一度! 謎の変数は、実際に$記事[ 'ID']であると仮定すると、

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

...

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

あなたのコードの残りの部分はまた、どのようにHTMLの作品とどのようにPHPの配列の仕事について混乱しています。

関連する問題