2011-08-24 51 views
1
<html> 
<script type="text/javascript"> 
function show_alert() 
{ 
    alert("I am an alert box!"); 
} 
</script> 
<body> 
<?php 
$x = 8; 

if($x ==10){ 
    echo "Hi"; 
} 
else{ 
    echo 'show_alert()'; 
} 
?> 

</body> 
</html> 

如何得到回显以输出show_alert()的值?JS函数的PHP输出值

+0

阅读:http://stackoverflow.com/questions/7016701/creating-jquery-ajax-requests-to-a-php-function/7016795#7016795 – NullUserException

回答

5

变化

echo 'show_alert()'; 

echo '<script>show_alert()</script>'; 

,使浏览器知道治疗show_alert()是一个函数调用,而不是常规的HTML文本。

+3

提前两秒钟。这就是我写作解释性句子所得到的结果。 –

+0

@Michael,少说话,更提供技术上正确但无法回答的答案:) –

4

你需要用它在脚本标签:

if($x ==10){ 
    echo "Hi"; 
} 
else{ 
    echo '<script type="text/javascript">show_alert();</script>'; 
} 

注意,这将不会等待页面加载完成后调用show_alert()。只要浏览器在页面呈现中达到此点时就会显示警报,但在警报框后面可能不完整。如果你想让它等待整个页面加载,放置条件在<body onload>

<body <?php if ($x != 10) {echo 'onload="show_alert();"';} ?>> 
    <?php 
    if ($x == 10) 
    { 
     echo "Hi!"; 
    } 
    ?> 
</body> 
3

如果你的意思是叫showAlert()当浏览器渲染/调用计算该行:

echo '<script type="text/javascript">show_alert();</script>'; 

如果你的意思是在PHP中获得showAlert()的值,你不能 - PHP是server-side语言。


此:

echo 'show_alert()'; 

会简单地打印 “showAlert()” 页面上,除非你已经打开了一个<script>标签。

+0

+1对于解释性句子 – NullUserException

0

我想你可能会对客户端和服务器端代码之间的区别感到困惑。 但是,如果你正确地使用两个,你想让它出现:

echo '<script type="text/javascript">show_alert();</script>';

0

这在很大程度上取决于当你想show_alert()JavaScript函数被调用时。猜测您正在使用的PHP代码,我假设您希望在页面加载后立即调用javascript函数,在这种情况下,您可能希望在加载主体之前使用PHP,并添加一个“的onload”属性,事件处理程序,你的身体标记:

if($x ==10){ 
    echo '<body>'; 
} 
else{ 
    echo '<body onload="show_alert();">'; 
}