2016-02-16 27 views
5

私は、条件が満たされたときにPHP関数を呼び出す関数をJQuery内に持っています。私がfile_put_contentsできるまで、すべてうまくいく。それは、JQueryが解釈する方法を知らない何らかの出力をスローする必要があるようです。ここに私のコードです:PHP関数file_put_contentsを呼び出す内部JQueryから

jQueryの部分、$ダウンローダは、クラスのインスタンスであるとfinishedDownloadingはjavascriptの変数です。これまでのところは良い

if (finishedDownloading==<?php echo $downloader->_totalFiles ?>){ 

    <?php $downloader->MergePDFs(); ?> 

} 

。そしてここに私のPHPがあります:

function MergePDFs() 
    { 

     $combinedFiles = ""; 

     foreach ($this->_fileNamesArray as $filename) { 
      $combinedFiles .= file_get_contents($filename); //these are the urls of my files 
     } 


     echo "document.getElementById('test-if-finished').innerHTML = 'Test output: " . $this->_file . "'"; // this is for testing 

     //The above code works, the problem comes when I add the lines below 

     file_put_contents("all-files.pdf", 
       $combinedFiles); 

もし私がfile_put_contents行にコメントすればスムーズに進みます。

コメントを外すと、コードを実行するとJQuery関数が宣言されていない "uncaught referenceError"エラーが発生します。

誰かが何が起こっているか教えていただけますか?

はあなたに

編集ありがとう:私はますfile_put_contentsはjQueryのをどうするかを知らないことを、いくつかの値を返していると思います。

編集2:これは、jQueryの一部では考慮にif文

+0

私はアヤックス – madalinivascu

+1

がより良い仕事を得る前に、JavaScriptのプログラミングについての学習を開始するが表示されませんdone – madalinivascu

+0

ajaxはダウンロードの進行状況を評価しますが、関数とは関係ありません。 ajaxはうまく動作します – user3808307

答えて

2

を取っていない、私はjqueryのエラーを取り除くことができた場合でも、関数は、ページの読み込みに実行されます、行うことができませんでしたPHP関数をjavascriptコードに含めて呼び出すべきではありません。あなたの例では、jQueryパーツのif条件が満たされない限り、PHPコードはとにかく処理されます。

jQueryのためにそのようなことを試してください:あなたのコードのような

if (finishedDownloading==<?php echo $downloader->_totalFiles ?>){ 
    $.get('mergepdf.php'); 
} 

そしてmergepdf.php:

<?php 
function MergePDFs() 
{ 

    $combinedFiles = ""; 

    foreach ($this->_fileNamesArray as $filename) { 
     $combinedFiles .= file_get_contents($filename); //these are the urls of my files 
    } 


    echo "document.getElementById('test-if-finished').innerHTML = 'Test output: " . $this->_file . "'"; // this is for testing and works fine 

    file_put_contents("all-files.pdf", 
     $combinedFiles); 
    ... 
} 

MergePDFs(); 
+0

MergePDFはクラス内にあります – user3808307

+0

内部から$ _fileNamesArrayが必要ですクラス – user3808307

+0

file_put_contentsがブール値を返さないようにする方法はありますか? – user3808307

関連する問題