2011-05-04 15 views
1

我的JavaScript文件:JavaScript值與jQuery的PHP

var ms = 3000; 
$.get("curl.php", { test: ms }); 

我curl.php:

$ms = $_GET("test"); 
echo $ms; 

Firefox的螢火說:

Fatal error: Function name must be a string in C:\Users\Jansu\Documents\workspace\php\curl.php on line 2

可能是什麼問題呢?

更好的是,當JavaScript和PHP代碼在同一個文件中,所以我不必發佈/獲取任何東西。只是以某種方式傳遞JavaScript到PHP。

+0

即使你把它全部放到一個文件中,你仍然需要做get/post。是的它是相同的文件,但PHP部分運行在服務器上,並且JavaScript部分在瀏覽器中運行。 – 2011-05-04 11:16:28

回答

10

你想[],不()docs):

$ms = $_GET["test"]; 

回覆您的編輯:

even better would be when the javascript and php code is in the same file, so i do not have to post/get anything. just somehow pass javascript to php

即使他們是在同一個文件,他們在執行完全不同的地方。 JavaScript在客戶端執行,PHP在服務器上執行。要從客戶端獲得數據到服務器,必須在那裏發送。 Ajax(你這樣做)是你在不刷新整個頁面的情況下完成的主要方式,所以你在正確的軌道上。

+0

當我使用這樣的ajax時,curl.php裏面的所有腳本都跑了嗎? – Jaanus 2011-05-04 11:58:57

+0

@Jaanus:是的。只要瀏覽器請求'curl.php'資源,其中的PHP代碼就會運行。您可以在您的PHP代碼中使用邏輯來僅運行相關位,或者(可能更好)具有用於處理ajax請求的單獨PHP文件,因爲最好將不同的事情分開。 – 2011-05-04 12:02:33

+0

有沒有一種方法可以讓我從你的計算機中取出。即時通訊做一個祕密的項目。我有一些問題:) – Jaanus 2011-05-04 12:13:53

0

您沒有提及是否要單獨清理數據,但filter_input function比直接調用$ _GET更安全。

另外POST通常被認爲比GET更好的AJAX調用,因爲它沒有相同的字符串長度限制,也更安全一些。

$ms = filter_input(INPUT_POST, 'test', FILTER_SANITIZE_STRING); 
0
<script type="text/javascript"> 
var ms = 9000; 
function test() 
{ 
    $.ajax({ url: "a.php", 
     data: {"test":ms}, 
     type: 'get', 
     success: function(output) { 
         $('#testing').html(output); 
        } 
    }); 
} 
test(); 
</script> 
<?php 
$ms = $_GET["test"]; 
echo "$ms"; 
?> 
<div id="testing"> 
</div> 

可以迴響在任何HTML元素的輸出。在這裏我使用div。