2013-07-29 90 views
-2

我有一個問題,處理函數聲明使用JavaScript和PHP語言的混合。我需要從javascript調用它後聲明一個PHP函數

的問題是,該功能是在HTML代碼的另一部分宣佈,頁面將無法正常工作,直到我不JS代碼前移動。 有沒有需要移動PHP代碼的解決方案?

編輯:我想精確,以至於我的html文件是一個PHP擴展(的index.php),我可以沿着整個文檔訪問PHP變量通常

+0

沒有理由爲什麼你的PHP函數不能?放置在數據輸出之前,所以如果遇到錯誤,修復這些錯誤而不是搜索不存在的問題 – Garytje

+0

there b因爲從PHP我調用一個JS函數,如果我以前放置PHP代碼,JS功能尚未宣佈,並且我有同樣的問題 – user2590550

+0

@ user2590550您的js函數不被PHP調用,它是叫在客戶端。發生的事情是你的js函數在它加載到html文檔之前被調用。 – hdvianna

回答

1

我不認爲你可以調用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 
} 

這將運行您所要求的功能,並提醒結果。

+0

如果我包含整個php文件,它將使所有功能都可用於主文檔? – user2590550

0

您可以使用PHP的include()函數從其他PHP文件「導入」函數。

2

您必須使用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 
} 

>

相關問題