-1

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>
2
  • 2
    Put ?> before it and <?php after it... Commented Apr 10, 2018 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. Commented Apr 10, 2018 at 11:32

2 Answers 2

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 */
?>
Sign up to request clarification or add additional context in comments.

Comments

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; ?>
}

2 Comments

You might want to quote the value, unless you're 1000% sure it will always be numeric.
@MagnusEriksson good point, in this case I was only thinking numeric, but yeah, thanks :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.