как выполнить php-код в javascript

<button type="button" id="okButton" onclick="funk()" value="okButton">Order now </button> <script type="text/javascript"> function funk(){ alert("asdasd"); <?php echo "asdasda";?> } </script> 

Когда кнопка нажата, я хочу выполнить php-код (в этот момент для эха asadasda)

Solutions Collecting From Web of "как выполнить php-код в javascript"

 function echoHello() {alert ("<?php funkx(); ?>");} 

Этот код должен дать вам всплывающее окно

Вы можете использовать http://phpjs.org/ http://locutus.io/php/, он добавляет кучу функциональности PHP в javascript, но если это просто эхо, а скрипт находится в php-файле, вы можете что-то сделать как это:

 alert("<?php echo "asdasda";?>"); 

не беспокойтесь о переменчивом использовании двойных кавычек, PHP сделает это до того, как браузер увидит его.

как и для использования ajax, проще всего использовать библиотеку, такую ​​как jQuery . С этим вы можете сделать:

 $.ajax({ url: 'test.php', success: function(data) { $('.result').html(data); } }); 

и test.php будет:

 <?php echo 'asdasda'; ?> 

он будет писать содержимое test.php любому элементу, имеющему класс result .

Взаимодействие Javascript и PHP

Мы все выросли, зная, что Javascript работает на стороне клиента (то есть в браузере), а PHP – это серверный инструмент (то есть сервер). ОЧИСТНО, что оба просто не могут взаимодействовать.

Но – хорошие новости; его можно заставить работать, и вот как.

Цель состоит в том, чтобы получить некоторую динамическую информацию (например, элементы конфигурации сервера) с сервера в среду Javascript, чтобы ее можно было использовать при необходимости – обычно это подразумевает модификацию DHTML в презентации.

Во-первых, чтобы пояснить использование DHTML, я приведу этот пример DHTML:

 <script type="text/javascript"> function updateContent() { var frameObj = document.getElementById("frameContent"); var y = (frameObj.contentWindow || frameObj.contentDocument); if (y.document) y = y.document; y.body.style.backgroundColor="red"; // demonstration of failure to alter the display // create a default, simplistic alteration usinga fixed string. var textMsg = 'Say good night Gracy'; y.write(textMsg); y.body.style.backgroundColor="#00ee00"; // visual confirmation that the updateContent() was effective } </script> 

Предполагая, что у нас есть html-файл с ID = "frameContent" где-то, тогда мы можем изменить отображение с помощью простого <body onload = "updateContent ()">

Golly gee; нам не нужен PHP, чтобы делать это сейчас! Но это создает структуру для применения PHP-контента.

Мы меняем рассматриваемую веб-страницу на тип PHTML, чтобы разрешить серверу PHP доступ к контенту:

 **foo.html becomes foo.phtml** 

и мы добавим в начало этой страницы. Мы также вызываем загрузку php-данных в глобальные переменные для последующего доступа – вот так:

 <?php global $msg1, $msg2, $textMsgPHP; function getContent($filename) { if ($theData = file_get_contents($filename, FALSE)) { return "$theData"; } else { echo "FAILED!"; } } function returnContent($filename) { if ( $theData = getContent($filename) ) { // this works ONLY if $theData is one linear line (ie remove all \n) $textPHP = trim(preg_replace('/\r\n|\r|\n/', '', $theData)); return "$textPHP"; } else { echo '<span class="ERR">Error opening source file :(\n</span>'; # $filename!\n"; } } // preload the dynamic contents now for use later in the javascript (somewhere) $msg1 = returnContent('dummy_frame_data.txt'); $msg2 = returnContent('dummy_frame_data_0.txt'); $textMsgPHP = returnContent('dummy_frame_data_1.txt'); ?> 

Теперь наши javascripts могут перейти к глобальным глобалиям PHP следующим образом:

// через accessig globals var textMsg = '<? php global $ textMsgPHP; echo "$ textMsgPHP"; ? > ';

В javascript замените

var textMsg = «Спокойной ночи»;

с: // использованием php returnContent ()

var textMsg = '<? php $ msgX = returnContent ('dummy_div_data_3.txt'); echo "$ msgX"? > ';

Резюме:

  • веб-страница, подлежащая изменению, ДОЛЖНА быть файлом phtml или некоторым php-файлом
  • первое, что в этом файле ДОЛЖНО быть <? php для получения динамических данных?>
  • php-данные ДОЛЖНЫ содержать собственный CSS-стиль (если контент находится в кадре)
  • javascript для использования динамических данных должен находиться в этом же файле
  • и мы заходим в / из PHP по мере необходимости для доступа к динамическим данным
  • Обратите внимание: – используйте одиночные кавычки во внешних javascript и ТОЛЬКО двойные кавычки в динамических php-данных

Должно быть разрешено: вызывать updateContent () с именем файла и использовать его через onClick () вместо onLoad ()

Пример может быть представлен в Sample_Dynamic_Frame.zip для вашего осмотра, но не нашел средства для его прикрепления

Вы не можете запускать PHP с помощью javascript. JavaScript – это клиентская технология (работает в браузере пользователей), а PHP – это технология на стороне сервера (выполняется на сервере).

Если вы хотите сделать это, вам нужно сделать запрос ajax на PHP-скрипт и вернуть результаты, которые вы ищете.

почему ты хочешь сделать это?

Если вы просто хотите эхо-сообщение от PHP в определенном месте на странице, когда пользователь нажимает кнопку, вы можете сделать что-то вроде этого:

 <button type="button" id="okButton" onclick="funk()" value="okButton">Order now</button> <div id="resultMsg"></div> <script type="text/javascript"> function funk(){ alert("asdasd"); document.getElementById('resultMsg').innerHTML('<?php echo "asdasda";?>'); } </script> 

Однако, предполагая, что ваш скрипт должен выполнять некоторую обработку на стороне сервера, например, добавление элемента в корзину, вам может понравиться проверить http://api.jquery.com/load/ jQuery – использовать jQuery для загрузки пути к php, который выполняет обработку. В вашем примере вы можете сделать:

 <button type="button" id="okButton" onclick="funk()" value="okButton">Order now</button> <div id="resultMsg"></div> <script type="text/javascript"> function funk(){ alert("asdasd"); $('#resultMsg').load('path/to/php/script/order_item.php'); } </script> 

Это запускает php-скрипт и загружает любое сообщение, которое оно возвращает в <div id="resultMsg"> .

order_item.php добавит элемент в корзину и просто откликнется на любое сообщение, которое вы хотите отобразить. Чтобы получить пример работы, этого будет достаточно, как order_item.php:

 <?php // do adding to cart stuff here echo 'Added to cart'; ?> 

Для этого вам нужно будет включить jQuery на свою страницу, добавив это в свой <head> :

 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> 

Может быть так:

  <?php if($_SERVER['REQUEST_METHOD']=="POST") { echo 'asdasda'; } ?> <form method="post"> <button type="submit" id="okButton">Order now</button> </form> 

Если вы не хотите включать библиотеку jquery, вы можете просто сделать следующее

a) ad iframe, размер 0px, чтобы он не был виден, href пуст

b) выполнить это в вашей js-кодовой функции

  window.frames['iframename'].location.replace('http://....your.php'); 

Это выполнит скрипт php, и вы можете, например, сделать обновление базы данных …

поместите ваш php в скрытый div и вызовите его с помощью javascript

php часть

 <div id="mybox" style="visibility:hidden;"> some php here </div> 

часть javascript

 var myfield = document.getElementById("mybox"); myfield.visibility = 'visible'; 

теперь вы можете делать все с моим полем …