Я хочу знать, можно ли вызвать функцию php внутри javascript только и только тогда, когда условие истинно. Например
<script type="text/javascript"> if (foo==bar) { phpFunction(); call the php function } </script>
Есть ли какие-либо средства для этого. Если да, дайте мне знать. благодаря
Функция PHP не может быть вызвана так, как показано выше. Однако вы можете вызвать PHP-скрипт с использованием AJAX, код показан ниже. Также вы можете найти простой пример. Дайте мне знать, если вам нужно уточнить
Использование JQuery
<script type="text/javascript" src="./jquery-1.4.2.js"></script> <script type="text/javascript"> function compute() { var params="session=123"; $.post('myphpscript.php',params,function(data){ alert(data);//for testing if data is being fetched var myObject = eval('(' + data + ')'); document.getElementById("result").value=myObject(addend_1,addend_2); }); } </script>
Barebones Javascript Alternative
<script type="text/javascript"> function compute() { var params="session=123" var xmlHttp; var addend_1=document.getElementById("par_1").value; var addend_2=document.getElementById("par_2").value; try { xmlHttp = new XMLHttpRequest(); } catch (e) { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("No Ajax for YOU!"); return false; } } } xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { ret_value=xmlHttp.responseText; var myObject = eval('(' + ret_value + ')'); document.getElementById("result").value=myObject(addend_1,addend_2); } } xmlHttp.open("POST", "http://yoururl/getjs.php", true); xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttp.setRequestHeader("Content-length", params.length); xmlHttp.setRequestHeader("Connection", "close"); xmlHttp.send(params); } </script>
PHP – это серверная сторона, а Javascript – это клиент, поэтому на самом деле (да, я знаю, что есть JS на стороне сервера). Что вы можете сделать, это использовать Ajax и сделать вызов страницы PHP, чтобы получить некоторые результаты.
Нет, это невозможно. PHP-код работает до (на стороне сервера) javascript (на стороне клиента)
В других ответах это правильно.
Тем не менее, есть библиотека XAJAX , которая помогает имитировать акт вызова функции PHP из JavaScript, используя AJAX и специально разработанную библиотеку PHP.
Это немного сложно, и было бы намного легче научиться использовать $ .get и $ .post в jQuery, так как они лучше разработаны и проще, и как только вы узнаете, как они работают, вы не почувствуете нужно напрямую вызвать PHP из JavaScript.
PHP всегда запускается до загрузки страницы. JavaScript всегда запускается после загрузки страницы. Они никогда не бегают в тандеме.
Самое близкое решение – использовать AJAX или переадресацию браузера для вызова другого .php-файла с сервера.