将PHP变量传递给Javascript函数(特定代码错误)

时间:2012-11-17 01:02:34

标签: php javascript html function

所以我已经搜索了大量的东西并想出了如何将PHP变量传递给Javascript函数,但是当我在我的代码中实现它时,而不是在alert()中获取变量;窗口我得到<?php echo $a ?><?php echo $c ?>希望它是我忽略的小东西,但我不知道为什么这不起作用,因为我从论坛上的回复中复制了它的行用户表示它有效,我有一个朋友说它有效,但是当我自己运行代码(第二[代码] [/代码])时,它返回相同的错误。

   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<?php 
$a = 'Fatber Christmas'; 
$b = '27 Sunshine Street /n America'; 
$c = nl2br($b); 
?>

<html>

<head>      
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Kenneth So Photography</title>
    <link rel="stylesheet" href="kennethsostylesheet.css" type="text/css">
    <link rel="shortcut icon" href="Photos/favicon.png" type="image/png">

    <script type="text/javascript"> 
    function test(a,b) { 
    alert(a); 
    alert(b); 
} 
    </script>

    <script type="text/javascript" src="picScript.js"></script>
</head>

<body>

    <a onClick="test('<?php echo $a ?>', '<?php echo $c ?>');">LINK</a> 



    <div id="headerBar">
        <div id="logo">
            <a href="javascript:void(0)" ><img src="Photos/FinalizedLogo.png" alt="logo" height="100px" width="400px" onclick="setNum(1)"></a> 
        </div>
        <div id="titleBar">
            <p>
            <a href="javascript:void(0)" onclick="setNum(1)">Home</a> |
            <a href="javascript:void(0)" onclick="setNum(2)">Automotive</a> |
            <a href="javascript:void(0)" onclick="setNum(3)">Nightlife</a> |
            <a href="/about.html">About Me</a> |
            <a href="/contact.html">Contact</a>
            </p>
        </div>
    </div>
    <div id="imageBox">
        <div id="imageView">
        </div>

        <div id="imagePreview">
        </div>
    </div>
</body>
</html>

独立代码导致相同的显示

<?php 
$a = 'Fatber Christmas'; 
$b = '27 Sunshine Street /n America'; 
$c = nl2br($b); 
?> 
<html> 
<head> 
<script type="text/javascript"> 
function test(a,b) { 
    alert(a); 
    alert(b); 
} 
</script> 
</head> 
<body> 
<a onClick="test('<?php echo $a ?>', '<?php echo $c ?>');">LINK</a> 
</body> 
</html>

谢谢大家!!!

3 个答案:

答案 0 :(得分:4)

就语法而言,您的代码是正确的,但是 - 正如评论中所指出的那样 - 您总是需要为输出的媒体(数据库,其他编程语言,html等)准备变量。

问题是你的php没有得到解析。

原因可能是:

  • 您的服务器上没有启用php;
  • 您的文件名以.html而不是.php结尾,导致文件无法识别为php文件;
  • 您不是从服务器请求文件,而是从文件系统请求文件。

答案 1 :(得分:1)

/ n不是新行。 \ n是。

<?php 
$a = 'Fatber Christmas'; 
$b = '27 Sunshine Street \n America'; 
$c = nl2br($b); 
?> 

测试并且工作正常。

另外,您是将文件保存为.php类型而不是.html吗? 正如您可能已经推测的那样,PHP将无法在.html文件中运行。你需要保存为.php,并且,正如jeroen所说,确保启用php。

答案 2 :(得分:0)

我测试了代码。但它对我来说很好。

 i)I think you do not have php enabled server. 
 ii) Check your server that accepts the javascript code and php code
 iii) May be plugins problem. So if you are using netbeans, see the php tag and javascript variable in different color. So u can easily recognize the mistakes.