0

I have the following javascript code which I need to be executed in a PHP file. I need to know how should I enter the php tags to this javascript code.

I am new to web programming.

The javascript used here is to export content in the html page to a .csv file.

        <!-- Scripts ----------------------------------------------------------- -->

    <script type='text/javascript' src='https://code.jquery.com/jquery- 
    1.11.0.min.js'></script>
    <!-- If you want to use jquery 2+: https://code.jquery.com/jquery-2.1.0.min.js -->
    <script type='text/javascript'>
    $(document).ready(function () {

        console.log("HELLO")
        function exportTableToCSV($table, filename) {
            var $headers = $table.find('tr:has(th)')
                ,$rows = $table.find('tr:has(td)')

                // Temporary delimiter characters unlikely to be typed by 
                  keyboard
                // This is to avoid accidentally splitting the actual 
                  contents
                ,tmpColDelim = String.fromCharCode(11) // vertical tab 
                 character
                ,tmpRowDelim = String.fromCharCode(0) // null character

                // actual delimiter characters for CSV format
                ,colDelim = '","'
                ,rowDelim = '"\r\n"';

                // Grab text from table into CSV formatted string
                var csv = '"';
                csv += formatRows($headers.map(grabRow));
                csv += rowDelim;
                csv += formatRows($rows.map(grabRow)) + '"';

                // Data URI
                var csvData = 'data:application/csv;charset=utf-8,' + 
                 encodeURIComponent(csv);

            // For IE (tested 10+)
            if (window.navigator.msSaveOrOpenBlob) {
                var blob = new Blob([decodeURIComponent(encodeURI(csv))], {
                    type: "text/csv;charset=utf-8;"
                });
                navigator.msSaveBlob(blob, filename);
            } else {
                $(this)
                    .attr({
                        'download': filename
                        ,'href': csvData
                        //,'target' : '_blank' //if you want it to open in a 
                           new window
                });
            }

            //------------------------------------------------------------
            // Helper Functions 
            //------------------------------------------------------------
            // Format the output so it has the appropriate delimiters
            function formatRows(rows){
                return rows.get().join(tmpRowDelim)
                    .split(tmpRowDelim).join(rowDelim)
                    .split(tmpColDelim).join(colDelim);
            }
            // Grab and format a row from the table
            function grabRow(i,row){

                var $row = $(row);
                //for some reason $cols = $row.find('td') || $row.find('th') 
                 won't work...
                var $cols = $row.find('td'); 
                if(!$cols.length) $cols = $row.find('th');  

                return $cols.map(grabCol)
                            .get().join(tmpColDelim);
            }
            // Grab and format a column from the table 
            function grabCol(j,col){
                var $col = $(col),
                    $text = $col.text();

                return $text.replace('"', '""'); // escape double quotes

            }
        }


        // This must be a hyperlink
        $("#export").click(function (event) {
            // var outputFile = 'export'
            var outputFile = window.prompt("What do you want to name your 
              output file (Note: This won't have any effect on Safari)") || 
               'export';
            outputFile = outputFile.replace('.csv','') + '.csv'

            // CSV
            exportTableToCSV.apply(this, [$('#dvData > table'), 
             outputFile]);

            // IF CSV, don't do event.preventDefault() or return false
            // We actually need this to be a typical hyperlink
        });
    };
</script>
James Z
  • 12,209
  • 10
  • 24
  • 44
user1793864
  • 241
  • 2
  • 6
  • 13
  • 2
    Put `?>` before it and ` – jeroen Apr 10 '18 at 10:57
  • I'm not sure what exactly you want to achieve... maybe the answers here below will be a good fit but I'm under the impression you're willing to write a csv file and save it on the server, found a javascript code to do this (client-side) and expect it to magically run on the server. – Laurent S. Apr 10 '18 at 11:32

2 Answers2

1

use this, add ?> before it and <?php after script

<?php 
/* your php code */
?>
<script type='text/javascript'>
// your script 
</script>
<?php 
/* your php code */
?>
Dave
  • 3,073
  • 7
  • 20
  • 33
0

Top answer from a previous question

<script type="text/javascript">
var my_var = <?php echo json_encode($my_var); ?>;
</script>

works if you define and use the variable in PHP, and want to pass the variable in the Javascript. If you are running in a PHP file (which you are) you can also use

function foo()
{
    var i = 0 ;
    i = <?php echo $my_var; ?>
}
James Lingham
  • 419
  • 1
  • 3
  • 17