2012-02-08 146 views
0

我将如何去执行一个JavaScript函数的php脚本?如何从javascript函数执行php?

<?php if (isset($results['errorMessage'])) { ?> 
    <script type="text/javascript>somemethod(<?php echo $results['errorMessage'] ?>) </script> 
<?php } ?> 

很抱歉的坏格式 - 不知道如何在这个编辑器中使用代码:S

+1

您的代码看起来像是从PHP设置Javascript,而不是其他方式 – Cez 2012-02-08 12:43:06

+0

看起来你缺少一些引号。您正在传递一个字符串以传递给Javascript方法,但是如果您查看生成的Javascript代码,则会发现该字符串未加引号,因此很可能在语法上不正确。例如。你需要生成'somemethod('这是一条消息')',但你实际上正在生成'somemethod(这是一条消息)' – DaveRandom 2012-02-08 12:59:49

回答

1

你需要让从JavaScript的HTTP请求调用远程PHP网页/脚本。

你试图做到这一点的方式是不可能的。

1

你不能! Javascript在客户端(即客户端浏览器)执行,PHP在服务器上执行。

你可以做的是向你的PHP脚本发出一个Ajax请求,并根据结果做一些事情。

0

我用这个一个使用JavaScript和它的作品完美地发出请求:

function httpGet(theUrl) 
{ 
     var xmlHttp = null; 

     xmlHttp = new XMLHttpRequest(); 
     xmlHttp.open("GET", theUrl, false); 
     xmlHttp.send(null); 
     alert(xmlHttp.responseText); 
} 

和html代码:

<html> 
<head> 
<script type="text/javascript" src="log.js"></script> 
</head> 
<body> 
     <a href="" onclick="httpGet('message.php?url=http://bizzare.com/?id=1')">Get Message</a> 
</body> 
</html> 
0

如果这就是你们的榜样只需要调整一个模板的一部分在页面上生成正确的JavaScript:

要修复此示例,您可以尝试

<?php if (isset($results['errorMessage'])) { ?> 
    <script type="text/javascript> 
     somemethod(<?php echo "'" . $results['errorMessage'] . "'" ?>); 
    </script> 
<?php } ?> 

但正如其他答案所示,最好沿着ajax路线走下去。生成JavaScript通常是一个糟糕的设计选择。

0

你是不是想用一条消息来调用一个简单的JS函数?

<?php 
    if(isset($results['errorMessage'])){ 
     echo '<script type="text/javascript>somemethod("'.$results['errorMessage'].'")</script>'; 
    } 
?>