2016-08-26 3 views
-1

웹 사이트에서 버튼을 클릭하고 진행을 원하는지 확인하기 위해 팝업을 표시합니다. 링크를 사용하고 팝업을 사용하는 몇 가지 질문을 보았지만 팝업이있는 버튼은 없습니다. 나는 몇 가지 시도를했지만, 내가 원하는 방식대로 작동하지 않습니다. 현재 내가 가지고 : 다음HTML 팝업 버튼 클릭부터 클릭

<p>Copy website files from MAFINFWWWPV02 to MAFINFWWWPV01</p> 
<form action='Admin.php' enctype='multipart/form-data' method='post' onclick="myFunction()"> 
    <input type='hidden' name='action' value='CopyFiles'/> 
    <p><input type='submit' name='submit' value='Copy Files'/></p> 
</form> 
<p id="demo"></p> 

이를 :

<script> 
function myFunction() 
{ 
    var x; 
    if (confirm("Copy all files?") == true) 
    { 
     x = "You pressed OK!";/*Want this to run the .bat*/ 
    } 
    else 
    { 
     x = "You pressed Cancel!";/*Want this to not run the .bat*/ 
    } 
    document.getElementById("demo").innerHTML = x; 
} 

이는 박쥐 파일을 실행합니다. '확인'또는 '취소'버튼을 클릭했는지 여부와 관계없이이 작업을 수행합니다. '확인'을 클릭하고 .bat를 실행 시키거나 '취소'를 클릭하고 실행하지 않으려합니다. 나는 그것을 멈추는 방법을 모른다.

내 코드에 페이지의 단추에서 '동작'을 찾는 switch($_REQUEST['action'])이 있습니다. 이 case을 위해 그것은이 수행합니다 양식에 아무것도을 클릭하면

<form action='Admin.php' enctype='multipart/form-data' method='post' onclick="myFunction()"> 

은 그래서 해당 이벤트를 발생 것 :

case 'CopyFiles': 
$script = chr(92) . chr(92) . 'MAFINFWWWPV02\D$\WebContent\engsys.corp.ftr.com\BatchFiles\CopyFiles.bat'; 
system('cmd /c ' . $script); echo " <br>"; 
break; 
+0

나는 왜 투표를 했습니까? – Mike

답변

1

여기를 클릭 이벤트는 형태에 있습니다. 난 당신이 실제로 confirm() 응답 다음과 같은 형태의 게시물을 취소해야, 대신 onsubmit 이벤트에서 원하는?

<form action='Admin.php' enctype='multipart/form-data' method='post' onsubmit="myFunction()"> 

을 또한 생각한다. 첫째, 함수 호출에 return을 추가

<form action='Admin.php' enctype='multipart/form-data' method='post' onsubmit="return myFunction()"> 

그런 다음 당신은 또한 "기본을 방지"와 "false를 반환"의 조합을 사용하는 것이 좋습니다

. 이런 식으로 뭔가는 다음 confirm() 응답이 true 경우

function myFunction(e) 
{ 
    e.preventDefault(); // here 
    var x; 
    var response = confirm("Copy all files?"); 
    if (response == true) 
    { 
     x = "You pressed OK!"; 
    } 
    else 
    { 
     x = "You pressed Cancel!"; 
    } 
    document.getElementById("demo").innerHTML = x; 
    return response; // and here 
} 

그래서, 함수는 true 반환하고 양식을 제출하고 있습니다. 그렇지 않으면 함수는 false을 반환하며 양식은 제출되지 않습니다.

양식을 제출할 때 페이지가 새로 고쳐지기 때문에 demo 요소에 대한 해당 업데이트가 사라집니다.

+1

완벽하다, 내가 원했던 그대로였다. 데모 요소에 대한 업데이트에 대해서는별로 신경 쓰지 않았습니다. 클릭이 무언가를했는지 확인할 수 있었기 때문에 실제로'if' 문을 모두 없애 버렸고 그냥 var x = confirm ("Copy all 파일? "); return x; – Mike