0

HTMLコード内に埋め込まれた単純な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>

ボタンがクリックされたときにのみ実行する方法.??

4

2 に答える 2

1

必要なものを取得するためにAJAXを使用できます.サーバー側とユーザーアクションはユーザー側であるため、ブラウザーがページをロードする前にPHP関数が実行され、javascript-ajax呼び出しを使用して必要なものを追加できます..

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

ここにjQuery ajaxがあります..(使用できるようにjquery libを追加する必要があります)。(あなたはHTML HEADで、ソースがjquery libのスクリプトタグを1つ)..

ユーザーがボタンをクリックすると、ブラウザー内でリクエストが作成され、ブラウザーで応答が読み込まれます。例..

<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>

あなたのphpでPAGE(私の場合はscript.php)を作成する必要があります。そうしないと、ページの一部がそのajax呼び出しに対してのみ応答します..つまり、その呼び出しの応答以外の情報は表示されません..

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 コードの処理を防ぎます。

于 2012-11-05T05:18:17.310 に答える
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>
于 2012-11-05T06:18:28.823 に答える