2012-02-08 447 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>'; 
    } 
?>