How to call a JavaScript function from PHP?
As far as PHP is concerned (or really, a web server in general), an HTML page is nothing more complicated than a big string.
All the fancy work you can do with language like PHP - reading from databases and web services and all that - the ultimate end goal is the exact same basic principle: generate a string of HTML*.
Your big HTML string doesn't become anything more special than that until it's loaded by a web browser. Once a browser loads the page, then all the other magic happens - layout, box model stuff, DOM generation, and many other things, including JavaScript execution.
So, you don't "call JavaScript from PHP", you "include a JavaScript function call in your output".
There are many ways to do this, but here are a couple.
Using just PHP:
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
Escaping from php mode to direct output mode:
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
You don't need to return a function name or anything like that. First of all, stop writing AJAX requests by hand. You're only making it hard on yourself. Get jQuery or one of the other excellent frameworks out there.
Secondly, understand that you already are going to be executing javascript code once the response is received from the AJAX call.
Here's an example of what I think you're doing with jQuery's AJAX
$.get(
'wait.php',
{},
function(returnedData) {
document.getElementById("txt").innerHTML = returnedData;
// Ok, here's where you can call another function
someOtherFunctionYouWantToCall();
// But unless you really need to, you don't have to
// We're already in the middle of a function execution
// right here, so you might as well put your code here
},
'text'
);
function someOtherFunctionYouWantToCall() {
// stuff
}
Now, if you're dead-set on sending a function name from PHP back to the AJAX call, you can do that too.
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* Or JSON or XML etc.
calling javascript function from php
Your html is invalid. You're missing some tags.
And you need to call the function after it has been declared, like this
<html>
<head>
<title></title>
<script type="text/javascript">
function run(){
alert("hello world");
}
<?php
echo "run();";
?>
</script>
</head>
<body>
</body>
</html>
In this case you can place the run before the method declaration, but as soon as you wrap the method call inside another script tag, the script tag has to be after the method declaration.
Try yourself http://jsfiddle.net/qdwXv/
Calling JavaScript functions via PHP
Replace
echo '<script>after();</script>';
with
$hasData = true;
Then you can do something like
$(document).ready(function(){
<?=isset($hasData) && $hasData === true ? 'after();' : ''?>
});
Also, you'll receive a javascript error as 'fullName' isn't defined.
Automatically calling a javascript function from php
<script>my_func('<?php echo $custom_error; ?>');</script>
its working
Related Topics
How to Use Multiple Databases in Laravel
How to Search by Key=≫Value in a Multidimensional Array in PHP
Only Variables Should Be Passed by Reference
What Does the Variable $This Mean in PHP
How to Solve PHP Error 'Notice: Array to String Conversion In...'
PHP - Check If Two Arrays Are Equal
PHP How to Find the Time Elapsed Since a Date Time
Convert Time in Hh:Mm:Ss Format to Seconds Only
When Should I Use 'Self' Over '$This'
Using Jquery $.Ajax to Call a PHP Function
How to Use PHP Serialize() and Unserialize()
PHP Fatal Error: Using $This When Not in Object Context
Forcing to Download a File Using PHP
How to Get a File Name from a Full Path With PHP