2013-06-24 5 views
1

디렉토리의 파일을 삭제할지 묻는 코드가 있습니다. 문제는 페이지가 새로 고침 될 때 발생하며 프롬프트 선택없이 파일을 삭제합니다. 페이지를 새로 고칠 때도 파일을 삭제하지 않으려합니다.디렉토리의 파일을 올바르게 삭제하는 방법

<script language="javascript"> 
function checkMe() { 
    if (confirm("Are you sure")) { 
     alert("Clicked Ok"); 
     <?php     
      $files = glob('d:/pics/*'); // get all file names 
      foreach($files as $file){ // iterate files 
      if(is_file($file)) 
      unlink($file); // delete file 
      } 
     ?> 
     return true; 
    } else { 
     alert("Clicked Cancel"); 
     return false; 
    } 
} 
</script> 

여기 당신은 그런 자바 스크립트에서 PHP를 호출 할 수있는 기능

<a href='index.php?main=add-doc' class='footer-img' onclick=\"return checkMe();\"><div class='record'><img src='images/download.png' style='position: relative; margin: auto;'/>Upload Record</div></a> 
+0

AJAX를 조사해야합니다. JS가 실행될 때가 아니라 페이지가 렌더링 될 때 평가 한 코드입니다. – naththedeveloper

답변

5

를 호출하는 코드입니다, PHP는 항상 실행됩니다. 당신이 원하는 것은 Ajax입니다. 당신이 jQuery를 사용하는 경우

file.php

$files = glob('d:/pics/*'); // get all file names 

foreach($files as $file){ // iterate files 
    if(is_file($file)) 
     unlink($file); // delete file 
} 

와 자바 스크립트에서 아약스, 그것은

function checkMe() { 
    if (confirm("Are you sure")) { 
     $.get('file.php', function() { 
      //ignore 
     }); 
    } 
} 

같은 것 또는 당신의 index.php 파일에 PHP를 넣어 확인할 수 있습니다

if (isset($_GET['main']) && $_GET['main'] == 'add-doc') { 
    $files = glob('d:/pics/*'); // get all file names 

    foreach($files as $file){ // iterate files 
     if(is_file($file)) 
      unlink($file); // delete file 
    } 
} 

및 자바 스크립트에서만 코드 확인 :

링크를 클릭하고 확인을 반환하면 브라우저가 링크를 따라 가서 PHP 코드를 실행합니다.

+3

jQuery를 사용하고 있다고 지정해야합니다. – HamZa

+0

@HamZa 예, "jQuery를 사용하면" – jcubic

+0

"이라고 적어 두었습니다. 편집 후 * 작성했지만 답을 향상시켜 +1을 얻었습니다. 나 :) – HamZa

관련 문제