2017-10-06 10 views
0

こんにちは私は、同じPHPファイルでクリックボタンのPHP関数を呼び出すための解決策が必要です PHP関数internはPerlスクリプトを実行し、ftpを使用してファイルをダウンロードします。 (私のPerlスクリプトが実行され、私のftpのダウンロードはうまくいきます)ボタンをクリックするとphp関数が呼び出されません)私は多くの他の投稿が私が探している解決策を見つけられませんでした。私が間違っている何かがあります。 は以下ボタンクリックコールPHP関数

事前にありがとうございます、私のサンプルPHPコードは、ザ・あなたは間違ってやっている、あなたはPHP、jQueryとさえAJAXについて明確でないように私は感じているものがたくさんある

<?php 
    function getFile(){ 
     exec("/../myperlscript.pl parameters");// 
     //some code for ftp file download(wich is working) 
    } 
<!-- 
if(isset($_POST['submit'])){ 
    getFile(); 
} 
--> 
?> 
<script src="https://code.jquery.com/jquery-1.11.2.min.js"> 
</script> 
<script type="text/javascript"> 
     $("form").submit(function() { 
      $.ajax({ 

       type: "POST", 
       sucess: getFile 
      }); 
     }); 
</script> 
<form method="post"> 
    <input type="button" name="getFile" value="getFile"> 
</form> 
+0

からアヤックスがどのように機能するかを理解しようとは、あなたが前のAjaxを使用したことがありますか? jqueryはどうですか?また、サーバー側とクライアント側の違いを知っていますか? –

答えて

1

です。

ボタンをクリックしたときにAJAX経由でPOSTデータを送信/取得したい場合、ページを更新せずにフォーム要素は必要ありません。

代わりに、次の

<?php 
    function getFile($filename) { 
     echo "working, contents of $filename will be displayed here"; 

     //terminate php script to prevent other content to return in ajax data 
     exit(); 
    } 

    if (isset($_POST['getfile']) && $_POST['getfile'] === "true") { 
     getFile($_POST['filename']); 
    } 
?> 

<script src="https://code.jquery.com/jquery-1.11.2.min.js"> 
</script> 
<script> 
    $(document).ready(function(){ 
     $("#getFile").click (function(){ 
      $.post("index.php", // current php file name 
      { 
       // post data to be sent 
       getfile: "true", 
       filename: "file1" 
      }, 
      function(data, status){ 
       // callback/function to be executed after the Ajax request 
       $("#fileContent").text(data); 
      }); 
    }); 
    }); 
</script> 

<button id="getFile">Get File</button> 
<p id="fileContent"></p>