PHP와 scandir 함수를 사용하여 파일 정렬 도구를 구축하고 있습니다. 지금까지 내가 가진 것은 특정 디렉토리의 모든 파일을 인쇄하는 PHP가 포함 된 간단한 HTML 문서입니다. 또한 사용중인 PHP 스크립트에 따라 오름차순 또는 내림차순으로 파일 이름을 기반으로이 작업을 수행합니다. 이제 빌드하려고하는 것은 두 개의 라디오 버튼과 제출 버튼으로 PHP 스크립트를 변경하는 HTML 폼입니다. 목록을 오름차순 또는 내림차순으로 표시해야합니다.html 형식의 PHP scandir 제어
<?php
$dir = "files";
$exclude = array(".","..","error_log","_notes");
if (is_dir($dir)) {
$files = scandir($dir
// adding this for descending order ,SCANDIR_SORT_DESCENDING
);
foreach($files as $file){
if(!in_array($file,$exclude)){
echo '
<li> ' . $file . ' </li>';
}
}
}
?>
는 이제 질문은 다음과 같습니다 : 같은
<div class="controls">
<form class="controlform">
<input type="radio" name="valone" value="Milk">Ascending
<input type="radio" name="valtwo" value="Milk">Descending
<button class="sortbutton">Sort!/button><br>
</form>
</div>
... 몇 라인 나중에 HTML의 문서에서이 내 PHP 스크립트 모습입니다 : 여기 내 HTML 양식입니다 어떻게이받을 수 있나요 일? 고마워요!
// UPDATE & 최종 솔루션
당신에게 답변을 주셔서 대단히 감사합니다!
HTML
<form class="controlform" method="get" action="index.php">
<input type="radio" name="sort" value="asc">Ascending
<input type="radio" name="sort" value="desc">Descending
<button class="sortbutton">Sort!</button><br>
</form>
PHP
<?php
$sortFlag = SCANDIR_SORT_NONE; // set a default
if (!empty($_GET['sort'])) {
switch ($_GET['sort']) {
case 'asc': $sortFlag = 0; break;
case 'desc': $sortFlag = 1; break;
}
}
$dir = "files";
$exclude = array(".","..","error_log","_notes");
if (is_dir($dir)) {
$files = scandir($dir, $sortFlag);
foreach($files as $file){
if(!in_array($file,$exclude)){
echo '
<li><h3>' . $file . ' </h3></li>';
}
}
}
?>
감사합니다 :이 작업 솔루션입니다!
음 정말 똑똑하고 우아한 감사합니다! 양식을 행동에 옮기는 가장 좋은 방법은 무엇이라고 생각하십니까? 외부 파일에 PHP를 넣고 GET을 통해 PHP 양식에 연결해야합니까? 죄송합니다, PHP를 처음 사용하는 경우 – Marc
@Marc 오, 같은 파일에 남겨두고 그냥 GET을 사용할 수 있습니다. 아마 실제로 더 적절할 것입니다. 나는 내 대답을 편집 중입니다. 이렇게하면 사용자가 전달/뒤로/다시로드 버튼을 사용하면 "양식 데이터를 다시 제출 하시겠습니까?"라는 경고 메시지가 표시되지 않습니다. – sjagr
빠른 답장을 보내 주셔서 감사합니다. 현재 해결책을 제시하는 업데이트 된 질문을 살펴보십시오. 왜 출력이 전혀 없는지 알 수 있습니까? 모든 것을 두 번 확인했습니다. – Marc