2012-03-07 4 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; ?> 

다음은

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> 

이다의 index.php 기사 애플리케이션에는 사용자가 특정 제목을 클릭하고 (addarticle.html.php에서) 전체 아트로 동적으로 새 페이지를 만듭니다 책 읽는 중 표시됩니다. 앞의 페이지에서 fullarticle.html.php 페이지로 변수를 전달하는 데 문제가 있습니다. 제대로 응용 프로그램은 동적

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

후 데이터베이스에서 특정 문서 정보를로드 새로운 페이지를 생성하는 방법에 어떤 아이디어가 클릭?

답변

1

먼저 "전체 기사"가 하나의 기사 일 뿐이므로 해당 템플릿에 foreach()이 필요하지 않습니다.

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

또한, 귀하의 mysqli_real_escape_string 전화에, 당신이있어 : 다음

$articleData = $result->fetch_object() 

:

둘째, 당신이 mysqli_query를 사용하여 데이터를 철수하고, 그래서 당신의 값에 있어야 ID 값을 얻기 위해 $_GET 대신 $_POST을 사용하여 수정하십시오.

+0

답을 약간 형식이 지정되었습니다. 미래를 위해 [Markdown help] (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입니까? 전통적으로 '?' 쿼리의 시작을 표시하지만 후속 내선은 '&'으로 구분됩니다. 당신은 index.php에서 viewarticle 매개 변수를 파싱하는 것처럼 보입니다 -하지만 href 나 폼은 거기에 데이터를 보내지 않습니다.

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

htmlout()은 무엇을하나요? PHP를 별도로 사용해야하는 이유는 무엇입니까? 왜 닫고 PHP 태그를 eropen?

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

그리고 다시! 신비 변수를 가정

  </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 배열 작업에 대한 혼란이다 ... 실제로 $ 기사 [ 'ID']입니다.