2013-08-30 3 views
0

쉬운 것! 나는 싼 포럼을 코딩하려고 노력하고있다. C 배경에서 왔을 때, 나는 PHP에 대해 이상한 것을 발견하기 시작했다. 함수를 사용하면 DIV 내부에 문자열 (HTML)이 반환되지만 브라우저는 </DIV>을 인쇄하지 않습니다. 자체적으로 에코가 적용되는 경우에도 마찬가지입니다.div 태그가 PHP에서 닫히지 않음

PHP는 특정 DOM 요소를 반향 시키거나 HTML 출력에 제한이 필요한 시점을 결정합니까? 같은 내장되어

function GetFullList(){ 
     $sql="SELECT * FROM `Forum` WHERE `IsReply` =0"; 
     $result=mysql_query($sql); 
     if (!$result){ 
      echo mysql_error(); 
     } 
     if($result){ 
     while($ForumEntry = mysql_fetch_assoc($result)){ 
      $IsReply  = $ForumEntry["IsReply"]; 
      $ParentPost = $ForumEntry["ParentTopic"]; 
      $f_User  = $ForumEntry["User"]; 
      $f_Replies  = $ForumEntry["Replies"]; 
      $f_Views  = $ForumEntry["Views"]; 
      $f_Time  = $ForumEntry["Time"]; 
      $f_Post  = $ForumEntry["Post"]; 
      $f_Topic  = $ForumEntry["Topic"]; 
      $f_Index  = $ForumEntry["Index"]; 
      echo DisplayPost($f_User, $f_Replies, $f_Views, $f_Time, $f_Post, $f_Topic, $f_Index); 
      GetChildPostsOf($ParentPost); 
       } 
      } 
     } 

그리고 DisplayPost() :

echo "Start<div id='Forum'>"; 
    echo "Forum"; 
    GetFullList(); 
    echo "</div>"; 

, GetFullList()

은 다음과 같이 구성 포스트 :

function DisplayPost($f_User, $f_Replies, $f_Views, $f_Time, $f_Post, $f_Topic, $f_Index){   
      $PostBlock = "<div id='Grp_Cell' style='width:930;background-color:#999999;text-align:left;'><div id='Grp_Cell' style='float:left;'><div id='Tbl_Cel'>User: ".$f_User."</div><div id='Tbl_Cel'>Replies: ". $f_Replies."</div><div id='Tbl_Cel'>Views: ".$f_Views."</div><div id='Tbl_Cel'style='background-color:777777;height:112;'>Post started on ".$f_Time.".&nbsp;</div></div><div id='Grp_Cell' style='float:right;width:600;'><div id='Tbl_Cel'>Subject: ".$f_Topic."</div><div id='Tbl_Cel' style='background-color:777777;height:150;'>". $f_Post."</div><a onClick='Reply(".$f_Index.");Filter();'><div id='Tbl_Cel' style='background-color:#888888; height:50; width:50; float:right; padding:2;border-color:black; border:2;'><br>Reply</div></a></div>"; 
      return $PostBlock; 
      } 

는 (DB 결과에 대한 사업부의 발판을 표시합니다.) GetFullList() 다음에 "</div>"를 반향하려고하면 결과가 HTML로 인쇄되지 않고 나머지 페이지는 조작 된 div에 포함됩니다.

+0

문자열을 반환하고 getFullList()를 반향합니다. getchildpostof에 오류가있을 수 있습니다 – mplungjan

+4

$ PostBlock에는 10 개의 시작 div와 9 개의 닫는 div가 있습니다. – aynber

+1

@mplungjan 있습니다. 내 요점은 마지막 div가 에코 될 수도 있지만 닫히지 않은 div가 너무 많아서 알려주지 않는다는 것입니다. 예를 들어, DisplayPost가 9 번 호출되면 91 개의 시작 div (9 * 10 + 1)와 82 개의 닫는 div (9 * 9 + 1)가있게됩니다. – aynber

답변

1

$ PostBlock에는 10 개의 시작 div와 9 개의 닫는 div가 있습니다. 필요한 경우 폐쇄 </div>을 추가해야합니다. 출력이 어떻게 보이는지 쉽게 알 수있는 방법은 다음과 같이 줄 바꿈하는 것입니다.

$PostBlock = " 
<div id='Grp_Cell' style='width:930;background-color:#999999;text-align:left;'>   
    <div id='Grp_Cell' style='float:left;'> 
     <div id='Tbl_Cel'>User: ".$f_User."</div> 
     <div id='Tbl_Cel'>Replies: ". $f_Replies."</div> 
     <div id='Tbl_Cel'>Views: ".$f_Views."</div> 
     <div id='Tbl_Cel'style='background-color:777777;height:112;'>Post started on ".$f_Time.".&nbsp;</div> 
    </div> 
    <div id='Grp_Cell' style='float:right;width:600;'> 
     <div id='Tbl_Cel'>Subject: ".$f_Topic."</div> 
     <div id='Tbl_Cel' style='background-color:777777;height:150;'>". $f_Post."</div> 
     <a onClick='Reply(".$f_Index.");Filter();'><div id='Tbl_Cel' style='background-color:#888888; height:50; width:50; float:right; padding:2;border-color:black; border:2;'><br>Reply</div></a> 
    </div> "; 
+0

.... – mplungjan