2016-10-19 5 views
-1

파일 업로드 코드 내에 파일이 설정 될 때까지 이미지 상자를 숨기려고합니다. 지금은 파일이 설정되었는지 여부에 관계없이 $preview 이미지 상자를 보여줍니다.요소가 설정 될 때까지 숨기기 (isset)

내가 뭘 잘못하고 있니?

<form action="" method="POST" enctype="multipart/form-data"> 
    Change your profile picture <br><input type="file" name="file" class="inputbarfile" onchange="readURL(this);"> 
    <?php 
    $preview_file = '<input type="file" name="file" class="inputbarfile" onchange="readURL(this);">'; 
    $preview = '<img width="300px" height="200px" id="file" src="#" alt="your image">'; 
    if (empty($preview_file)) { 
     ''; 
    } else { 
     echo $preview; 
    } ?> 
    <input type="submit" name="create" value="Upload"> 
</form> 
+2

을 음,'$의 preview_file' 결코 분명히 것 비어 있으면됩니다. 명시 적으로 문자열에 두 줄만 추가하면됩니다. – arkascha

+2

나는 어디에서 뛰는지 당신이 혼란스러워하고 있다고 생각합니다. 이것은 PHP에서 직접 가능하지 않습니다. PHP는 클라이언트가 아닌 서버에서 실행됩니다. 당신이 페이지를 볼 때쯤에, PHP는 끝났습니다. 동적 인 페이지 상호 작용은 JS (필요한 경우 AJAX 사용)에서 수행해야합니다. –

+0

'$ preview_file'을 설정하고 그 아래 2 줄이 비어 있는지 확인하고 있습니다. – Blinkydamo

답변

0

jquery를 사용하여 PHP 조건이 필요하지 않습니다.

HTML

<form action="" method="POST" enctype="multipart/form-data"> 
    Change your profile picture <br> 
    <input type="file" name="file" class="inputbarfile"> 
    <img width="300px" height="200px" id="file" src="#" alt="your image" style="display: none;"> 
    <input type="submit" name="create" value="Upload"> 
</form> 

img 태그 style="display:none" 설정 파일 onchange를 입력 이벤트는 다음과 이미지 태그 쇼를 만든다.

파일 업로드 요소에서 onchange을 삭제하고 대신 jquery change 이벤트를 사용하십시오. readURL 함수는 그대로 있습니다.

$(".inputbarfile").change(function(){ 
    $("#file").show(); 
    readURL(this); 
}); 
+0

하지만 그는 PHP로 원합니다 –

+1

고마워요! 이것은 잘 작동합니다. – Paul

+0

@downvoter 왜 투표를 했습니까? 대답은 심지어 그렇게 도움이되는 것 같습니다. 투표를하기 전에 생각해보십시오. –

1

당신이 PHP을 함께하고 싶어 단지, 코드를 다음과 같이한다 ($ _POST htmlstrips에 대한 보안을 제외하고는 탈출) :

<?php if (isset($_POST['file'])):?> 
    <?php $file = $_POST['file']; //#SECURE You should escape here ?> 
    File: <?php echo $file; ?> 
    Image: <img width="300px" height="200px" id="file" src="path/to/image/<?php echo $file ?>" alt="your image" /> 
<?php endif; ?> 

<form action="#" method="POST" enctype="multipart/form-data"> 
    Change your profile picture <br> 
    <input type="file" name="file" class="inputbarfile" onchange="readURL(this);" /> 
    <input type="submit" name="create" value="Upload" /> 
</form>