我瞭解PHP ...分配JavaScript變量與AJAX
- PHP是服務器端和JavaScript作爲客戶端之間的差距。
- AJAX可以修補這個問題。
- XMLHttpRequest對象很重要。
但是,我仍然無法弄清楚如何在兩種語言之間傳遞變量。
任何援助將不勝感激!
編輯:感謝您的答覆到目前爲止,我應該澄清,我想這樣做,而無需加載新頁面。
我瞭解PHP ...分配JavaScript變量與AJAX
但是,我仍然無法弄清楚如何在兩種語言之間傳遞變量。
任何援助將不勝感激!
編輯:感謝您的答覆到目前爲止,我應該澄清,我想這樣做,而無需加載新頁面。
您需要發送包含查詢字符串或POST正文中的變量值的AJAX請求。
位於URL另一端的PHP腳本可以從查詢字符串或POST主體讀取值。
你可以在JS中使用JSON並用php解碼,但正如上面的帖子所述,它涉及到ajax。
這聽起來不錯,因爲我已經在做與頁面上其他數據類似的事情。如何獲得我感興趣的兩個變量以格式化爲JSON?之後,我可能會得到它的工作。 – Sebastian
UPDATE:教程發現在link
你應該給你想要實現的一個更詳細的例子。但是,如果我理解正確,您想在您的PHP代碼中使用JavaScript代碼中的值?
您應該嘗試使用POST或GET參數將值傳遞給PHP。爲了使PHP能夠做任何事情,你將不得不加載一個新頁面。
假設您有list.php
正在提供職位列表。你想「喜歡」一篇文章。您的JavaScript位於此頁面上。當你點擊「like」時,一個AJAX POST被髮送到like.php
,POST參數id = 123。
在like.php中,您從請求中獲得值(使用$_POST['id']
或更合適的東西),做你的魔法(保存到db)並回顯一些結果,例如json_encode(array('success' => true))
。
調用like.php
的JavaScript代碼可以使用它的回調來檢查「like」是否成功並顯示反饋。 like.php
可以是任何頁面,如果您願意,可以使用list.php
。爲了清晰起見,我使用了like.php
。
如果這不是你想要的,請提供更多信息。
你說得對,我想在我的PHP中使用Javascript值。我的問題在於,即使閱讀了AJAX POST函數的文檔之後,我也不明白所有參數,因此它不起作用。 – Sebastian
閱讀jQuery AJAX([link](http://api.jquery.com/jQuery.post/))。您的javascript代碼將如下所示: '$ .post(「like.php」,{id:123}, function(data){ //檢查數據是否一切正常,將一些反饋附加到DOM } );' 和你的like.php類似: '<? $ id = $ _POST ['id']; echo json_encode(array('success'=> true)); ?>' 有很多很好的教程,例如: [link](http://php4every1.com/tutorials/jquery-ajax-tutorial/) – johnhaggkvist
我想通過兩個JS變量, lat和lng。我的代碼看起來像這樣到目前爲止,但PHP會拋出一個錯誤,該變量未定義: '$ .post(「index.php」,{lat:lat,lng:lng},function(data){//檢查數據如果一切順利,附加一些反饋到DOM});''和'$ lat = $ _POST ['lat']; echo json_encode(array('success'=> true));' – Sebastian
如果您還沒有看過jQuery框架的JavaScript腳本,那就做吧。
如果你有一個叫JS city
變量,你可以通過它使用
var city = "London";
$.get("file.php", {location:city});
這是一個HTTP GET請求傳遞給file.php
。
在PHP(文件。PHP),然後通過使用它來抓取它
$city = $_GET['location'];
echo $city; //London
這看起來很有希望,但標記了PHP錯誤: **注意:未定義索引:位置** 任何想法? – Sebastian
@塞巴斯蒂安很難說,這意味着變量沒有被髮送。首先確保函數運行,然後直接在函數中嘗試像location =「London」一樣,以確保該值已設置。 – joakimdahlstrom
感謝您的回覆。這將是什麼樣的請求,並且它需要一個外部PHP文件? – Sebastian
它可以是GET或POST。如果它不是冪等的,它應該是POST。它可以是任何你想要的PHP文件; PHP文件將收到一個單獨的請求。 – SLaks