3 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
從PHP傳遞數(shù)據(jù)很容易,您可以使用它生成JavaScript。另一種方法則比較困難-您必須通過Javascript請(qǐng)求來調(diào)用PHP腳本。
一個(gè)示例(為簡(jiǎn)單起見,使用傳統(tǒng)的事件注冊(cè)模型):
<!-- headers etc. omitted -->
<script>
function callPHP(params) {
var httpc = new XMLHttpRequest(); // simplified for clarity
var url = "get_data.php";
httpc.open("POST", url, true); // sending as POST
httpc.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpc.setRequestHeader("Content-Length", params.length); // POST request MUST have a Content-Length header (as per HTTP/1.1)
httpc.onreadystatechange = function() { //Call a function when the state changes.
if(httpc.readyState == 4 && httpc.status == 200) { // complete and no errors
alert(httpc.responseText); // some processing here, or whatever you want to do with the response
}
};
httpc.send(params);
}
</script>
<a href="#" onclick="callPHP('lorem=ipsum&foo=bar')">call PHP script</a>
<!-- rest of document omitted -->
不管get_data.php產(chǎn)生什么,它將出現(xiàn)在httpc.responseText中。錯(cuò)誤處理,事件注冊(cè)和跨瀏覽器XMLHttpRequest兼容性留給讀者簡(jiǎn)單的練習(xí);)

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
有幾種方法,最主要的是獲取表單數(shù)據(jù)或獲取查詢字符串。這是使用JavaScript的一種方法。當(dāng)您單擊鏈接時(shí),它將調(diào)用_vals('mytarget','theval'),后者將提交表單數(shù)據(jù)。頁(yè)面發(fā)回時(shí),您可以檢查是否已設(shè)置此表單數(shù)據(jù),然后從表單值中檢索它。
<script language="javascript" type="text/javascript">
function _vals(target, value){
form1.all("target").value=target;
form1.all("value").value=value;
form1.submit();
}
</script>
或者,您可以通過查詢字符串獲取它。PHP具有_GET和_SET全局函數(shù)來實(shí)現(xiàn)此目的,從而使其變得更加容易。
我敢肯定,還有更多更好的方法,但是這些只是我腦海中浮現(xiàn)的一些方法。
編輯:從其他人使用上述方法所說的內(nèi)容出發(fā),您將擁有一個(gè)錨標(biāo)記,例如
<a onclick="_vals('name', 'val')" href="#">My Link</a>
然后在您的PHP中,您可以使用
$val = $_POST['value'];
因此,當(dāng)您單擊使用JavaScript的鏈接時(shí),它將發(fā)布表單數(shù)據(jù),并且頁(yè)面從該單擊發(fā)回時(shí),您可以從PHP中檢索它。
添加回答
舉報(bào)