簡體   English   中英

我可以從Java腳本或jquery調用用php創建的函數嗎? 怎么樣?

[英]can i call function created in php from java script or jquery ? How?

我想從Java腳本或jquery用php調用我的函數。

我已經試過了。

    <script>
    function hello(){
         <?php
              print_hello();
          ?>
    }

hello();

</script>

print_hello()是我的php函數,它可以打印問候。

無法直接調用php方法,它給出的錯誤not defined因為javascript文件中沒有方法print_hello

ReferenceError: print_hello is not defined

您必須使用AJAX從javascript調用php方法。

AJAX有點棘手,如果您想使其簡單,則可以使用jQuery庫。

您必須在文件的print_hello方法中包含代碼,然后使用AJAX調用該文件。 假設您已將方法print_hello放入文件print_hello.php ,示例代碼將為:

$.ajax({
  url: "print_hello.php"
}).done(function() {
  alert( "called php code succesfully" );
});

並將您的php代碼放在文件php_hello.php

<?php
  print_hello();
?>

有關如何進行ajax調用的更多信息,請參見:

阿賈克斯jQuery

注意:(因為您是Web開發的新手)

Web開發與通信有關。 在這種情況下,將通過HTTP協議在2個參與方之間進行通信:

服務器-此方負責提供頁面。

客戶端-此方從服務器請求頁面,並將頁面顯示給用戶。 在大多數情況下,客戶端是Web瀏覽器。 用戶-用戶使用客戶端瀏覽網頁,填寫表格,在線觀看視頻等。雙方的編程均指在特定計算機,服務器或客戶端上運行的代碼。

更多信息在此StackOverflow問題(服務器端和客戶端編程)

不,JavaScript在瀏覽器中運行,PHP在服務器端運行。

您應該考慮使用AJAX(例如,使用jQuery使其變得容易)在服務器上運行特定的PHP函數,並返回結果。

或者,如果問題中的代碼段是由PHP腳本提供的html,則可以編寫以下代碼:

<script>
function hello(){
     console.log('<?php print_hello();';?>
     }

hello();

</script>

不,服務器端與客戶端。

PHP在服務器上運行,而Javascript(通常)在客戶端上運行。

如果您的PHP print_hello(); 功能是這樣的

function print_hello() {
    printf "document.getElementById('some_id').innerHTML = 'Hello!';";
}

那么這將導致用戶瀏覽器中出現以下情況:

function hello(){
    document.getElementById('some_id').innerHTML = 'Hello!';
}

hello();

簡而言之:您可以在PHP服務器端創建Javascript,但不能在客戶端運行PHP腳本。

我想你可以。 您需要將Javascript存儲在.php文件中。 並將您的Php函數置於標記之外。

可以從服務器端動態生成JavaScript。 之所以可行,是因為PHP在發送到客戶端之前先在服務器端執行。 這取決於您的PHP函數輸出的內容。 如果輸出有效的JavaScript,則它將正常工作。 例如,如果您的print_hello()函數輸出alert('test'); 然后JavaScript代碼就可以做到這一點。 但是,我建議不要在服務器端動態生成javascript,除非出於維護性的考慮絕對必要。

不,您無法通過腳本調用。

    <script>
    function hello(){
       console.log('<?php print_hello();';?>
     }

    hello();
   </script>

像這樣對服務器端代碼進行ajax調用

PHP代碼(target.php):

<?
  function foo( ) {
    //do some processing  here and echo the data 
  }
?>

JQUERY代碼:

$.ajax({
  url: "/target.php/foo",
  data:{}  //data to the server script 
  success: function( data ) {
        //Data returned from server side script
  }

});

快樂編碼:)

很簡單

$(document).ready(
    function run_php() {
        $('.my_class').load('my.php');
    }
);

// or with parms
//$('.my_class').load('my.php', {'path': 'my_parms'});

其中my_class是當前php中的任何類

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM