2013-07-15 78 views
0

我想弄清楚如何「發送」一個Javascript/JQuery變量到PHP變量。我在這裏發現了this post,並試圖追蹤那裏的一些東西,但沒有運氣。我試圖製作最簡單的代碼,以此來測試它。這裏是。Javascript/JQuery變量或數組到PHP變量或數組

thefilename.php

<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 

<?php 
$test = $_POST['test']; 
echo $test; 
echo "Test Ran"; 
?> 

<input type="button" id="rawr" value="Test"/> 

<script> 
var somestring = "some string"; 

//Audio test 
$("#rawr").click(function() { 
    alert("BUTTON PRESSED"); 
    $.post("thefilename.php", {test : somestring}); 
}); 

</script> 

這,在我心中,是一個簡單的方法來測試它。也許我有什麼問題......不確定......那就是爲什麼我在這裏。只需要尋找最簡單的方法將變量從Javascript傳遞到PHP。最後我想傳遞一個數組。任何幫助也將不勝感激。

+0

我認爲這段代碼工作,除非'thefilename.php'的路徑是正確的...檢查你的開發人員工具,你應該看到在網絡選項卡(鉻)PHP中的回聲部分..或使用成功回調函數$ .post(... {},function(result){alert(result)})'' – bipen

+0

$ .post()是一個ajax命令check out [http://api.jquery.com/jQuery。 post /](http://api.jquery.com/jQuery.post/)中有關如何使用它的示例。 –

+0

謝謝@ChrisMorrissey我已經看過這個頁面幾次了。仍然無法獲得任何工作。我雖然這會比現在更容易。 –

回答

2

我認爲你對PHP和JavaScript的頁面生命週期有着根本性的困惑。 PHP是一種服務器端腳本語言。當您從服務器請求一個頁面(通過導航到它或啓動一個AJAX調用)時,PHP腳本從頭到尾運行,並且服務器返回其輸出(在本例中爲HTML頁面)。而已。當頁面源代碼被髮送到瀏覽器時,PHP就完成了。

另一方面,JavaScript是客戶端腳本語言。 JavaScript在您的瀏覽器內運行,並且可以在頁面加載後更改頁面(最顯着的是通過更改DOM)。

AJAX提供了兩個世界之間有點脆弱的聯繫。 Javascript函數像jQuery中的.post()一樣向服務器發送異步請求並告訴服務器檢索某個文件。如果該文件是PHP,則服務器通常會執行該文件。

所以在你的例子這裏發生了什麼:

  1. 您鍵入thefilename.php網址到瀏覽器和命中 進入
  2. 瀏覽器向服務器發送一個請求thefilename.php
  3. 服務器將文件filename.php識別爲PHP文件並告知PHP執行腳本
  4. 運行PHP腳本。其輸出由請求正文中包含的數據 (PHP中的$ _POST)確定。它輸出一些HTML代碼。
  5. 服務器響應您對filename.php的請求,並執行 HTML代碼。
  6. 您的瀏覽器爲您呈現HTML代碼。
  7. 單擊該按鈕
  8. 瀏覽器的JavaScript將請求發送到thefilename.php上 服務器
  9. 您的服務器識別thefilename.php爲PHP文件,並告訴PHP 執行腳本
  10. 的PHP腳本運行。其輸出由發佈的 數據確定。它產生一些HTML代碼。
  11. 服務器響應您對filename.php的請求,並執行 HTML代碼。
  12. .post函數接收到HTML響應,然後將其呈現在警報中 。

我希望能幫助解釋發生了什麼。 最有可能你想爲你的異步調用一個單獨的PHP文件。