我試圖獲得一個JavaScript腳本(準確地說是在一個Safari擴展中運行)發送一些字符串到我的服務器上的PHP腳本。我通過構建一個帶有變量的URL來工作,但我想用POST來做到這一點,以使其更加安全,並通過其中一個變量「&」。將變量傳遞給PHP從PHP
有沒有一種方法可以做到這一點?謝謝!
我試圖獲得一個JavaScript腳本(準確地說是在一個Safari擴展中運行)發送一些字符串到我的服務器上的PHP腳本。我通過構建一個帶有變量的URL來工作,但我想用POST來做到這一點,以使其更加安全,並通過其中一個變量「&」。將變量傳遞給PHP從PHP
有沒有一種方法可以做到這一點?謝謝!
幾件事情:
首先,你可以通過URL使用escape()函數從JavaScript發送數據安全:
window.location="myscript.php?company=" + encodeURIComponent("Ben & Jerry's Ice Cream");
,然後你可以解碼值在PHP中使用urldecode()函數:
$company = urldecode($_GET["company"]);
,然後你將有完全一樣的輸入值。
重要的是要認識到,無論您是通過POST還是GET發送數據,您都必須對數據進行編碼。它們的格式相同,都使用&標誌來分隔鍵/值對。
您的第二個選擇是使用Ajax(與其他許多人所建議的一樣)。這會影響不會刷新頁面的效果。這可能會也可能不會,但那會發生。
如果你不希望使用Ajax調用,你第三個選擇是,你可以簡單地將一個網頁上的表單:
<form name="myform" method="POST" action="MyPhpScript.php">
<input type="hidden" name="value1" />
<input type="hidden" name="value2" />
</form>
然後,從JavaScript,設置隱藏表單值和提交表格。
挑選你的毒藥 - 你有充裕的選擇:)
是的,你不需要使用AJAX。您可以使用HTTP POST請求。這基本上是一個HTML表單。當然,如果你希望數據傳遞給PHP而不需要網頁訪問者點擊某些東西,你需要使用Javascript來提交表單(可以使用隱藏元素),或者使用AJAX(xmlhttprequest)。隨意問一個更具體的問題。
一個不同的解決方案,我用它在我的項目之一:用餅乾從JavaScript重載頁面
設置cookie並把它在PHP
有趣!如何使用JS創建/設置cookie? – 2010-09-17 07:46:12
您確實[在提問前使用了搜索功能](http://stackoverflow.com/search?q=Pass+variables+to+PHP+from+javascript)? – Gordon 2010-09-17 06:46:19