Call php function from javascript

MarPlo
Posts: 88

Call php function from javascript

Is it posible to run a php function through a javascript function?
Something like this:

Code: Select all

<div id="php_code">Here will be added the Php Code via jsFun()</div> <span onclick="jsFun();">Test</span> <script> function jsFun() { document.getElementById('php_code').innerHTML = '<?php phpFun("hello"); ?>'; } </script>
I basically want to run the php function phpFun(), when I click on the <span> "Test" that calls the jsFun() function.
- How can I call a php function from javascript?

Admin
PHP is evaluated at the server; javascript is evaluated at the client-side/browser, thus you can't call a PHP function from javascript directly. But you can use Ajax to access a php file from javascript, through a HTTP request (GET, POST), and get the php response in javascript.
Example.
- HTML-JavaScript code:

Code: Select all

<div id="php_code">Here will be added the Php response via jsFun()</div> <span onclick="jsFun();">Test</span> <script> function jsFun() { var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); // XMLHttpRequest instance // create pairs index=value with data that must be sent to php var datas = 'do=phpFun'; request.open("POST", 'file.php', true); // set the request // adds a header to tell the PHP script to recognize the data as is sent via POST request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); request.send(datas); // sends datas to php // Check request status // If the response is received completely, adds the response in #php_code request.onreadystatechange = function() { if(request.readyState == 4) { document.getElementById('php_code').innerHTML = request.responseText; } } } </script>
- PHP code (in file.php):

Code: Select all

<?php function phpFun() {     return 'Hello'; } if (isset($_POST['do']) && $_POST['do'] == 'phpFun') {   echo phpFun(); } 
For more details about Ajax and PHP, see the lessons from http://coursesweb.net/ajax/.

Similar Topics