0

私はphpスクリプトを持っています:

<?php
$species = $_GET['species']
...//do things to prepare the query
$result = //result of the query.
if (isset($_GET['download'])){
    getCSV();
}

function getCSV(){
    if ($result->num_rows > 0){         
        $f = fopen("csvFile", "w");
        while ($row = $result->fetch_assoc()){
            fputcsv($f, $row);
        }
        fclose($f);
        echo ("downloaded");
    }
    else{
        echo ("no results to download");
    }
}
?>

そしていくつかのhtmlコード:

<button type="button" onclick="window.location.href='query.php?download=true'"> Click to download as csv file </button>

php スクリプトと html コードの両方が同じファイル query.php に存在します。phpスクリプトは別の場所からも呼び出され、「種」のGETリクエストがそれに送信されます(その他にもいくつかありますが、ここに含めることはしませんでした)。

ボタンをクリックしたときに getCSV 関数を呼び出したいと思います。ページを更新したくないので、とにかく ajax と jquery を使用する必要があることを認識しています (また、この目的で ajax を使用することについて以前に多くの質問が寄せられていることも認識しています)。ただし、php スクリプトには、$_GET['species']およびその他のデータを渡す必要があるため、ボタンをクリックすると (ajax を使用する場合と同様に)、他の GET 変数が渡されないため、「種」GET 変数が失われます。ボタンでquery.phpへ。したがって、クエリが間違って入力され、getCSV 関数が無駄なデータに対して呼び出されます。

getCSV() 関数は query.php から呼び出されます。呼び出し時に、ページの URL にアクセスし、それを操作して、「ダウンロード」以外の他の GET 変数 (「種」など) が何であるかを判断することができます。私はかなりの数の変数を持っているので、これをしなくても関数を呼び出すことは可能ですか?

前もって感謝します。

4

1 に答える 1

0

index.php see here

<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<button type="button" id="test"> Click to download as csv file </button>
<input type="hidden" id="val" value="true"> <!--download filename value true and false-->

<script>
    $(function(){
        $('#test').click(function(){

            var val = $("#val").val();

            $.ajax({
                url: 'query.php',
                type: 'GET', // get method
                data: 'download='+val, // download get name + value go
                  success: function(data) {
                    // success
                    alert(data);
                  },
                  error: function(data) {
                    // error
                    alert(data);
                  }
            });
        });
    });
</script>

query.php see here

<?php
$species = clean($_GET['download']); // clean func magic quotes fix

 if (empty($species)) {

     echo 'get name not empty';
        //  empty get name print

 }else{
    if ($species == 'true'){
        echo 'download';

        // true query code here...

    }else{
        echo 'no download';

        // error code here
    }
 }
?>

Title of the article samples available on site. Before writing your search.

I told him simply, you can adjust your system.

REGARDS.

于 2016-04-20T21:52:37.843 に答える