如何在javascript函数中使用php

How can you use php in a javascript function

本文关键字:php 函数 javascript      更新时间:2023-09-26
<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或其他东西,但我不知道该怎么做。

谢谢

你不能用Javascript运行PHP代码。当用户接收到页面时,服务器将评估并运行所有PHP代码,并将其取出。例如,可以这样写:

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

因为服务器已经将其计算为:

alert("Hello");

但是,你不能用它在PHP中执行任何操作。

:

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

将被简单地求值为:

function Inc()
{
    2
}

如果你不想调用一个PHP脚本,你将不得不调用一个不同的页面,从一组参数返回一个值。

例如:

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/

我想你把服务器代码和客户端代码搞混了。

JavaScript在客户端接收到来自服务器的数据(如网页)后运行。

PHP在发送数据之前在服务器上运行。

JavaScript和php有两种交互方式

和上面一样,你可以用php生成javascript,就像用php生成HTML一样。

或者您可以使用来自javascript的AJAX请求与服务器交互。服务器可以响应数据,javascript可以接收数据并对其进行处理。

我建议回到基础,研究HTTP如何在服务器-客户端关系中工作。然后学习服务器端语言和客户端语言的概念。

然后学习ajax教程,您将开始了解这个概念。

祝你好运,谷歌是你的朋友。

在php中使用script .

<?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>';
?>

简单地说,你的问题听起来不对,因为JavaScript变量需要回显。

<?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>";
?>

上述代码

将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和javascript的结合是你不能将javascript值赋给PHP值。

有一种方法可以在客户端javascript中运行php(这里不讨论服务器端js)。不知道这是不是一个好主意,但你可以。正如一些人指出的那样,你必须记住php是在服务器上评估的,然后作为静态内容返回给浏览器,浏览器将运行带有服务器添加数据的javascript。

你必须告诉服务器把js文件当作php文件来评估,如果你运行的是apache服务器,你可以这样做一个htaccess文件:

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

更多信息在这里:

解析js/css作为PHP文件使用htaccess

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

编辑:在http页面请求这个技巧使文件与js扩展名被php编译器解析。js文件中的所有php部分将被执行,并且添加了服务器数据的js文件将被交给浏览器。

然而,OP使用html格式的文件(可能与php扩展名),没有js文件,所以在这个特定的情况下,没有必要我的建议。

建议的js解决方案是可行的。如果变量需要存储在服务器上,则使用ajax将其发送到服务器。

试试这个可能会奏效。

<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>

尽管有一些注释,但在某些情况下,确实有必要在Javascript中访问PHP函数(例如AJAX情况)。

在这些情况下,您可以使用mwsX库在Javascript中使用PHP函数。

mwsX库:https://github.com/loureirorg/mwsx

直接返回:

<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>