[英]Executing javascript within PHP
我相信可以在PHP中執行一個java腳本函數,但是它會保留在服務器端而不是客戶端嗎? 我可以在PHP中調用.js函數,傳遞一些args,並讓它返回到調用它的PHP嗎?
我想要使用的腳本返回XML,我希望使用PHP獲取用戶輸入,將它們傳遞給駐留在服務器上的 .js函數,然后獲取返回的xml並在PHP部分中將其解析回來。
我問,因為我看到人們評論,因為.js是客戶端而PHP是服務器端,他們不相處。 我希望通過在PHP中執行.js函數,我可以將.js調用欺騙來自本地機器(服務器)。
感謝您的任何信息!
你不能從PHP本身調用JavaScript。 PHP不是JavaScript引擎。
但是,有一個PECL擴展用於與V8連接:
您可以與(服務器端)JavaScript引擎連接。 看看node.js和
如果您找到了可以調用的服務器端Javascript解釋器,您可以。 我沒有使用過PHPJS(http://phpjs.berlios.de/),但它可能有效。
聽起來你更好的選擇是替換js代碼,因為你所做的只是聽起來不錯。
我認為bpeterson釘了它。 但是如果你對AJAX感到不舒服,或者只是需要更多細節。
首先 - 對按鈕(表單提交或其他方式)執行操作。 行動= “JavaScript的:yourJsFunc()”。 這個元素很可能通過PHP上的回聲呈現,或者只是靜態編寫。
下一步 - 獲取所需的參數。 我建議使用jQuery或DOM方法,即。 $('#blah')或document.getElementById('blah')。val();
然后 - 設置隱藏的輸入以存儲您的響應,強制提交或執行ajax請求。 你有PHP的價值觀!
function yourJsFunc()
{
var arg1 = $('#arg1').val //or equivalent DOM method
var arg2...
//serialize these if necessary
var yourXML = outsideJSFunction(arg1, arg2, etc);
$('#invisibleDiv').html('<form id="yourForm" method="POST"><input type="hidden" name="x" val="'+yourXML+'" /></form>');
$('#yourForm').submit();
//ALTERNATIVELY $.get("other.php", {myXml : yourXml}, function() {//whatever});
}
這真的不像你看起來那么困難。
僅供參考,通過PHP稱為XAJAX的 AJAX解決方案相對鮮為人知。 在這種情況下,它可能不會幫助你太多,但它允許你在PHP函數上進行AJAX調用。 雖然PHP沒有javascript解釋器,但XAJAX和Jquery的Ajax是前端代碼與服務器端功能交互的絕佳方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.