I have three different files: index.html, app.js, app.php
. On HTML element <a href="./files/sweetsencrypt.pdf" onclick="return decrypt(this.href);">Decrypt Sweets</a>
I am calling javascript function in which I am giving ajax call to PHP:
function decrypt(filename){ $.ajax({ type: "POST", url: "app.php", data: { action:'decrypt', filename: filename } }).done(function( msg ) { alert( "Data returned: " + msg ); }); return false; }
Till this everything is okay. When the PHP function is called, I need to call javascript functionality from app.js
file in app.php
file. But its getting failed. I am trying:
<?php if($_POST['action'] == 'decrypt') { my_decrypt($_POST['filename']); } function my_decrypt($filename) { $filedata = file_get_contents($filename); // Remove the base64 encoding from our key $key = 'wejnjfff'; $encryption_key = base64_decode($key); // To decrypt, split the encrypted data from our IV - our unique separator used was "::" list($encrypted_data, $iv) = explode('::', base64_decode($filedata), 2); $result = openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv); echo "<script type='text/javascript' src='./app.js'> showPDF(); alert('successful!') </script>"; return $result; } ?>
Here, not the showPDF();
function is called nor the alert('successful!')
popup is shown. I am new to PHP. Where am I getting wrong? How to call javascript from PHP?
Advertisement
Answer
<?php if($_POST['action'] == 'decrypt') { $result = my_decrypt($_POST['filename']); echo json_encode(['result' => $result,'success' => 'successful']); } function my_decrypt($filename) { $filedata = file_get_contents($filename); // Remove the base64 encoding from our key $key = 'wejnjfff'; $encryption_key = base64_decode($key); // To decrypt, split the encrypted data from our IV - our unique separator used was "::" list($encrypted_data, $iv) = explode('::', base64_decode($filedata), 2); $result = openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv); return $result; } ?>
and in your ajax script
function decrypt(filename){ $.ajax({ type: "POST", url: "app.php", data: { action:'decrypt', filename: filename }, dataType: 'json', success: function (response) { if(response.success === 'successful') { alert( "Data returned: " + response.result); showPDF(); } } }) return false; }