2012-11-05 2 views
0

나는 내 HTML 코드 안에 내장 된 간단한 PHP 코드를 가지고있다. 단추를 클릭 할 때만 코드가 실행되기를 원합니다. 그러나 페이지가 자동으로로드되면 함수가 호출됩니다. 이 코드는 당신을 명확하게 설명 할 것입니다.PHP 코드가 자바 스크립트에 의해 호출되기 전에 작동

<meta http-equiv="X-UA-Compatible" content="IE=9"/> 
<script> 
function exportcsv() 
{ 
<?php exportcsv(); ?>; 
} 
</script> 
<?php 
function exportcsv() 
{ 
$File = "YourFile.txt"; 
$Handle = fopen($File, 'w'); 
$Data = "Visual BI Solutions\n"; 
fwrite($Handle, $Data); 
$Data = "ajay,praveen,musthafa,sanjay"; 
fwrite($Handle, $Data); 
fclose($Handle); 
} 
?> 
<button onClick="exporttxt()">Export</button> 

버튼을 클릭했을 때만 실행하는 방법 ??

+5

PHP는 ** 서버 측 **에서 실행되므로 ** 이전/이후 ** 페이지를 클라이언트에 출력합니다. 버튼 클릭 (또는 ** 클라이언트 쪽 ** 이벤트)에 대한 응답으로 PHP 코드를 실행해야하는 경우 AJAX를 사용하십시오. – Passerby

+2

이 목적으로 Ajax를 사용하십시오. –

+0

다른 모든 Ajax를 사용하지 않고 이동합니까? –

답변

1

당신이 원하는 것을 얻기 위해 AJAX를 사용할 수 있습니다 .. SERVER 쪽과 사용자 동작이 javascript-ajax 호출을 사용하여 필요한 것을 추가 할 수 있기 때문에 브라우저가 페이지를로드하기 전에 PHP 기능이 실행됩니다. .

http://api.jquery.com/jQuery.ajax/

가 .. 여기 JQuery와 아약스이다 (당신은 당신이 그것을 사용할 수 있도록 JQuery와 lib 디렉토리를 추가해야합니다). (html HEAD 소스에서 jquery lib 소스 태그 하나) ..

사용자가 버튼을 클릭하고 브라우저에서 응답을로드하면 브라우저에서 요청할 것입니다. 예 .. 당신의 PHP는 당신이 (내 경우이 script.php에) PAGE해야합니다 또는 페이지의 일부가 아니라 아약스 호출 responde 의지

<script> 
$(document).ready(function(){ 
    $("#buttonID").click(function(){ 
     $.ajax({ 
      url: "script.php", 
      type: "POST", 
      data: {action : 'exportcsv'}, 
      dataType: "text", 
      success: function(responde){ 
       alert(responde); /*This will show to user as message the responde*/ 
      } 
     }); 
    }); 
}); 
</script> 

은 .. 그게 늘 대답 제외한 다른 정보를 표시하는 것을 의미한다 그 전화의 ..

function exportcsv() 
{ 
$File = "YourFile.txt"; 
$Handle = fopen($File, 'w'); 
$Data = "Visual BI Solutions\n"; 
fwrite($Handle, $Data); 
$Data = "ajay,praveen,musthafa,sanjay"; 
fwrite($Handle, $Data); 
fclose($Handle); 
} 
if(isset($_POST['action']) && $_POST['action']=='exportcsv'){ 
    exportcsv(); 
    echo "SUCCESS"; 
    exit(); /*To prevent outputing other data..*/ 
} 

당신은 당신의 주요 PHP 파일에서 설정할 수 있지만, 전에 다른 출력이없는, 그래서 그것은 페이지의 첫 번째 줄에 있어야합니다. exit()는 다음 PHP 코드를 모두 처리하지 못하게합니다.

0

AJAX를 사용하고 싶지 않은 경우 버튼을 동일한 페이지에 게시 할 수 있습니다. 페이지 새로 고침이 표시되지만 버튼을 누를 때까지 기능이 실행되지 않습니다.

<meta http-equiv="X-UA-Compatible" content="IE=9"/> 
<?php 
function exportcsv() 
{ 
$File = "YourFile.txt"; 
$Handle = fopen($File, 'w'); 
$Data = "Visual BI Solutions\n"; 
fwrite($Handle, $Data); 
$Data = "ajay,praveen,musthafa,sanjay"; 
fwrite($Handle, $Data); 
fclose($Handle); 
} 
if(isset($_POST['export'])) exportcsv(); 
?> 
<form method="post"> 
<input type="submit" name="export" value="Export" /> 
</form> 
관련 문제