首页 > 解决方案 > How to pass the value of a PHP function to a Javascript variable?

问题描述

<script>
    function myFunc(a){
        document.getElementById("col2").innerHTML=a; 
        var str=a;
        if(str.charAt(0)=="c"){
            document.getElementById("col2").innerHTML="credit_card";
            var x=document.getElementById("col2").innerHTML;
            document.getElementById("col2").innerHTML= "<?php echo cc_print_info("<script> document.write(x) </script>") ;?>  ";
        }   
        
    }
</script>

I need to pass the value of cc_print_info() into document.getElementById("col2").innerHTML

I tried in the way mentioned in the code but it isn't working

Let me know how to do this

标签: javascriptphp

解决方案


您不应该在 JS 脚本中使用 PHP - 它不起作用,但您可以使用生成 JS 脚本的 PHP,例如只是变量赋值:

示例代码:

<!DOCTYPE html>

<html>

    <head>
    </head>

    <body>
        <?php

            function cc_print_info($a, $b) { return $a + $b; };

            echo '<script>' . PHP_EOL;
            echo "var phpReturn = " . cc_print_info(2, 3) . ';' . PHP_EOL;
            echo '</script>' . PHP_EOL;

        ?>

        <script>
            function myFunc(a, phpReturn){

                document.getElementById("col2").innerHTML=a; 
                var str=a;
                if(str.charAt(0)=="c"){
                    document.getElementById("col2").innerHTML="credit_card";
                    var x=document.getElementById("col2").innerHTML;
                    document.getElementById("col2").innerHTML= phpReturn;
                }   
                
            }
        </script>

    </body>

</html>

注意 PHP 必须在使用 cc_print_info 返回值的脚本之前。

上面的代码生成这个 HTML:

<!DOCTYPE html>

<html>

    <head>
    </head>

    <body>
        <script>
var phpReturn = 5;
</script>

        <script>
            function myFunc(a, phpReturn){

                document.getElementById("col2").innerHTML=a; 
                var str=a;
                if(str.charAt(0)=="c"){
                    document.getElementById("col2").innerHTML="credit_card";
                    var x=document.getElementById("col2").innerHTML;
                    document.getElementById("col2").innerHTML= phpReturn;
                }   
                
            }
        </script>

    </body>

</html>

所以对于浏览器来说看起来没有问题,因为你有

var phpReturn = 5;

你传递给你的函数:

function myFunc(a, phpReturn){

并使用它:

document.getElementById("col2").innerHTML= phpReturn;

推荐阅读