我有一個問題,處理函數聲明使用JavaScript和PHP語言的混合。我需要從javascript調用它後聲明一個PHP函數
的問題是,該功能是在HTML代碼的另一部分宣佈,頁面將無法正常工作,直到我不JS代碼前移動。 有沒有需要移動PHP代碼的解決方案?
編輯:我想精確,以至於我的html文件是一個PHP擴展(的index.php),我可以沿着整個文檔訪問PHP變量通常
我有一個問題,處理函數聲明使用JavaScript和PHP語言的混合。我需要從javascript調用它後聲明一個PHP函數
的問題是,該功能是在HTML代碼的另一部分宣佈,頁面將無法正常工作,直到我不JS代碼前移動。 有沒有需要移動PHP代碼的解決方案?
編輯:我想精確,以至於我的html文件是一個PHP擴展(的index.php),我可以沿着整個文檔訪問PHP變量通常
我不認爲你可以調用PHP函數從JavaScript。 Javascript不能運行PHP代碼,因爲PHP代碼將在網頁加載之前運行,並且JavaScript在網頁加載後運行。
無論如何,你仍然可以使用AJAX來運行一個外部的PHP文件是這樣的:
$.ajax({
url:'php/ajax_post.
type: 'post',
data: {function: "any_function"}
success: function(data)
{
window.alert(data);
}
});
在你的PHP文件,添加一個if語句,就像這樣:
if(isset($_POST['function']) && $_POST['function']=="any_function")
{
//Run your function
}
這將運行您所要求的功能,並提醒結果。
如果我包含整個php文件,它將使所有功能都可用於主文檔? – user2590550
您可以使用PHP的include()
函數從其他PHP文件「導入」函數。
您必須使用ajax調用來調用函數。使用jQuery.post發佈到您的php文件並在服務器中使用die來返回數據。 PHP運行在服務器端
例: 在javascript中:
<script>
$(document).ready(function()
{
$.post(this.uri,{},function(){});
});
</script>
在PHP中:
<?php
if (isset($_POST))
{
getVideos();
die("1");
}
function getVideos()
{
//some code
}
>
沒有理由爲什麼你的PHP函數不能?放置在數據輸出之前,所以如果遇到錯誤,修復這些錯誤而不是搜索不存在的問題 – Garytje
there b因爲從PHP我調用一個JS函數,如果我以前放置PHP代碼,JS功能尚未宣佈,並且我有同樣的問題 – user2590550
@ user2590550您的js函數不被PHP調用,它是叫在客戶端。發生的事情是你的js函數在它加載到html文檔之前被調用。 – hdvianna