채택완료

글복사시 첨부파일오류 첨부파일은 복사가 되지만 첨부파일 for구문 내용이 모두 나오는 문제

안녕하세요. 첨부파일 오류때문에 질문드립니다.

글을 복사하면 첨부파일은 복사가되는데,

첨부파일에 해당하는 이름과 이미지가 전부 복사되어서 나옵니다.

예를들어,

*전체 첨부파일은 5개로 설정하였습니다.

첨부파일이 한개이고 그에 해당하는 이미지와 제목도 같이 나오게 코드를 짰는데,

이 글을 복사하면, 기존 첨부파일 이미지와 내용은 모두 복사가되는데

나머지 네개해당하는 첨부파일이 없는데 이미지와 내용이 나옵니다.

설명하기가 좀 쉽지않은데 코드를 보여드릴게요

기존 이미지와 카타로그 다운로드라는 글자도 삭제되어야하는데 삭제가 안됩니다.

Copy
<?php if ($cnt) { ?>

        <div id="product_view_catal">

          <div id="bo_v_file">

            <?php

            for ($i = 1; $i <= 5; $i++) {

              $x = $i + 3;

              $c = $i + 5;

              echo $size[0];

              if ($i == 1) echo '<ul class=product_view_catalogue_list>';

              if ($view['file'][$i]['file']) {

                $image = urlencode($view['file'][$i]['file']);

                if (preg_match("/\.(gif|jpg|png)$/i", $image) && file_exists(G5_PATH . '/data/file/' . $bo_table . '/' . $image)) {

                  echo '<li class=product_view_catalogue_item>';

                  echo '<div class="img_box"><img src="' . G5_URL . '/data/file/' . $bo_table . '/' . $image . '" alt="' . $view['file'][$i]['bf_content'] . '" class="' . $size[0] . ' ' . $size[1] . '"></div>';

                  echo '<div class=product_view_catalogue_info>';

                  echo '<p class="catalogue_text"><b>' . $view['wr_' . $x] . '<i>' . $board['bo_subject'] . '</i></b></p>';

                  echo '</div>';

                  echo '<div class=product_view_catal_down_wrap>';

                  echo '<a href="' . $view['file'][$c]['href'] . '" class="btn_download" target="_blank"><span>카타로그 다운로드</span><i class="xi-valign-bottom"></i></a>';

                  echo '</div>';

                  echo '</li>';

                }

              }

            }

            if ($i > 1) echo '</ul>';

            ?>

          </div>

        </div>

      <?php } ?>
|

답변 1개

채택된 답변
+20 포인트
2023-10-26 (목) 17:09:30

다음과 같은 방법으로 해 볼 수 있을 것 같습니다.

Copy
<?php if ($cnt) { ?>
<div id="product_view_catal">
    <div id="bo_v_file">
        <?php
        $first_attachment_found = false; // Flag to track if at least one attachment is found
        for ($i = 1; $i <= 5; $i++) {
            $x = $i + 3;
            $c = $i + 5;

            // Check if there is an attachment for this index and if the attachment image file exists
            if ($view['file'][$i]['file'] && preg_match("/\.(gif|jpg|png)$/i", $view['file'][$i]['file']) && file_exists(G5_PATH . '/data/file/' . $bo_table . '/' . $view['file'][$i]['file'])) {
                // Display the first attachment's image and content
                if (!$first_attachment_found) {
                    echo '<ul class="product_view_catalogue_list">';
                    $first_attachment_found = true;
                }

                echo '<li class="product_view_catalogue_item">';
                echo '<div class="img_box"><img src="' . G5_URL . '/data/file/' . $bo_table . '/' . $view['file'][$i]['file'] . '" alt="' . $view['file'][$i]['bf_content'] . '" class="' . $size[0] . ' ' . $size[1] . '"></div>';
                echo '<div class="product_view_catalogue_info">';
                echo '<p class="catalogue_text"><b>' . $view['wr_' . $x] . '<i>' . $board['bo_subject'] . '</i></b></p>';
                echo '</div>';
                echo '<div class="product_view_catal_down_wrap">';
                echo '<a href="' . $view['file'][$c]['href'] . '" class="btn_download" target="_blank"><span>카탈로그 다운로드</span><i class="xi-valign-bottom"></i></a>';
                echo '</div>';
                echo '</li>';
            }
        }
        if ($first_attachment_found) {
            echo '</ul>';
        }
        ?>
    </div>
</div>
<?php } ?>

첨부 파일 이미지와 내용이 복사되는 문제:

주어진 코드에서 첨부 파일 이미지와 내용을 복사하는 부분은 별도의 if 문 없이 for 루프 안에 있습니다. 따라서, 첨부 파일이 없더라도 루프가 실행되고 해당 위치에 이전 첨부 파일 이미지와 내용이 그대로 표시됩니다.

기존 이미지와 "카탈로그 다운로드" 텍스트 삭제 문제:

해당 코드에서 이미지와 "카탈로그 다운로드" 텍스트를 삭제하는 코드가 없습니다. 이를 해결하기 위해서 조건문을 추가해야 합니다.

답변을 작성하려면 로그인이 필요합니다.