Подтвердить что ты не робот

Как вы можете использовать php в функции javascript

<html>
    <?php
        $num = 1;
        echo $num;
    ?>
    <input type="button"
           name="lol" 
           value="Click to increment"
           onclick="Inc()" />
    <br>
    <script>
        function Inc()
        {
        <?php
            $num = 2;
            echo $num;
        ?>
        }
    </script>
</html>

Это то, что я до сих пор не работал, я думаю, мне нужно использовать ajax или что-то, но я понятия не имею, что делать.

Спасибо

4b9b3361

Ответ 1

Вы не можете запустить PHP-код с помощью Javascript. Когда пользователь получает страницу, сервер будет оценивать и запускать весь PHP-код и вынимать его. Так, например, это будет работать:

alert( <?php echo "\"Hello\""; ?> );

Потому что сервер будет оценивать это следующим образом:

alert("Hello");

Однако вы не можете выполнять с ним какие-либо операции с PHP.

Это:

function Inc()
{
<?php
$num = 2;
echo $num;
?>
}

Будет просто оценено следующее:

function Inc()
{
    2
}

Если вы не хотите называть PHP script, вам придется вызывать другую страницу, которая возвращает значение из набора параметров.

Это, например, будет работать:

script.php

$num = $_POST["num"];
echo $num * 2;

Javascript (jQuery) (на другой странице):

$.post('script.php', { num: 5 }, function(result) { 
   alert(result); 
});

Это должно предупредить 10.

Удачи!

Изменить: просто увеличение числа на странице можно легко сделать в jQuery следующим образом: http://jsfiddle.net/puVPc/

Ответ 2

Я думаю, что вы вводите код сервера с кодом клиента.

JavaScript запускается на клиенте после того, как он получил данные с сервера (например, веб-страницу).

PHP запускается на сервере перед отправкой данных.

Таким образом, существует два способа взаимодействия с JavaScript с php.

Как и выше, вы можете сгенерировать javascript с php так же, как вы создаете HTML с php.

Или вы можете использовать запрос AJAX из javascript для взаимодействия с сервером. Сервер может отвечать данными, и javascript может получить это и что-то сделать с ним.

Я бы рекомендовал вернуться к основам и узнать, как HTTP работает в отношениях между сервером и клиентом. Затем изучите концепцию серверных языков и языков на стороне клиента.

Затем возьмите учебник с ajax, и вы начнете получать концепцию.

Удачи, Google - твой друг.

Ответ 3

вы используете script в php..

<?php

        $num = 1;
        echo $num;

    echo '<input type="button"
           name="lol" 
           value="Click to increment"
           onclick="Inc()" />
    <br>
    <script>
        function Inc()
        {';
            $num = 2;
            echo $num;

        echo '}
    </script>';
?>

Ответ 4

OK Люди могут ответить на свой вопрос, не переусердствуя, но сделав его простым, так как ваш вопрос звучал неправильно, потому что вы вставляли их туда, но они просто сидят в javascript навсегда, его не нравится, когда он собирается выбраться, потому что он hasn 't был отозван java script способ и посмотреть, насколько простым было решение: P

<?php
        $num = 1;
        echo $num;
        echo "<input type='button' value='Click' onclick='readmore()' />";
   		echo "<script> function readmore() { document.write('";
        $num = 2;
        echo $num;
        echo "'); } </script>";
?>

Ответ 5

В приведенном выше коде

присвойте значение php переменной javascript.

<html>
<?php
 $num = 1;
 echo $num;
?>
  <input type = "button" name = "lol" value = "Click to increment" onclick = "Inc()">
  <br>
  <script>
   var numeric = <?php echo $num; ?>"; //assigns value of the $num to javascript var             numeric 
  function Inc()
   {
     numeric = eVal(numeric) + 1;
     alert("Increamented value: "+numeric);
   }
  </script>
</html>

Одна вещь в комбинации PHP и Javsacript - вы не можете присвоить значение JavaScript для значения PHP. Вы можете присвоить значение PHP переменной javascript.

Ответ 6

Существует способ запустить php на клиентском javascript (не говоря уже о js-сервере на стороне сервера). Не знаю, если это очень хорошая идея, но вы можете. Как указывали некоторые люди, вы должны иметь в виду, что php оценивается на сервере, а затем возвращается в качестве статического материала в браузер, который затем запускает javascript с добавленными данными с сервера.

Вы должны сказать серверу оценить файлы js в виде файлов php, если вы используете сервер apache, вы можете сделать это с помощью htaccess файла следующим образом:

<FilesMatch "\.js$">
SetHandler application/x-httpd-php
Header set Content-type "application/javascript"
</FilesMatch>

Подробнее здесь:

Parse js/css как файл PHP с использованием htaccess

http://css-tricks.com/snippets/htaccess/use-php-inside-javascript/

Изменить: на странице http-запроса этот трюк позволяет обрабатывать файлы с расширением js компилятором php. Все части php в файле js будут выполнены, и файл js с добавленными данными сервера будет передан браузеру.

Однако OP использует html-форматированный файл (возможно, с расширением php), не файл js, поэтому в этом конкретном случае нет необходимости в моем предложении.

Предлагаемые js-решения - это путь. Если переменная должна быть сохранена на сервере, используйте ajax для ее отправки.

Ответ 7

Попробуйте, это может сработать.

<html>
   <?php $num = 1; ?>
   <div id="Count"><?php echo $num; ?></div>
   <input type = "button" name = "lol" value = "Click to increment" onclick = "Inc()">
   <br>
   <script>
   function Inc() {
       i = parseInt(document.getElementById('Count').innerHTML);
       document.getElementById('Count').innerHTML = i+1;
   }
   </script>
</html>

Ответ 8

несмотря на некоторые комментарии, в некоторых случаях действительно необходимо получить доступ к функциям PHP в Javascript (например, в случаях AJAX).

В этих случаях вы можете использовать библиотеку mwsX для использования своих функций PHP в Javascript.

Библиотека mwsX: https://github.com/loureirorg/mwsx

Ответ 9

Просто верните его:

<html>
    <?php
        $num = 1;
        echo $num;
    ?>
    <input type="button"
       name="lol" 
       value="Click to increment"
       onclick="Inc()" />
    <br>
    <script>
        function Inc()
        {
            Return <?php
            $num = 2;
            echo $num;
            ?>;
        }
    </script>
</html>