3 回答
TA贡献1789条经验 获得超10个赞
从PHP传递数据很容易,您可以使用它生成JavaScript。另一种方法则比较困难-您必须通过Javascript请求来调用PHP脚本。
一个示例(为简单起见,使用传统的事件注册模型):
<!-- 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产生什么,它将出现在httpc.responseText中。错误处理,事件注册和跨浏览器XMLHttpRequest兼容性留给读者简单的练习;)
TA贡献1880条经验 获得超4个赞
有几种方法,最主要的是获取表单数据或获取查询字符串。这是使用JavaScript的一种方法。当您单击链接时,它将调用_vals('mytarget','theval'),后者将提交表单数据。页面发回时,您可以检查是否已设置此表单数据,然后从表单值中检索它。
<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全局函数来实现此目的,从而使其变得更加容易。
我敢肯定,还有更多更好的方法,但是这些只是我脑海中浮现的一些方法。
编辑:从其他人使用上述方法所说的内容出发,您将拥有一个锚标记,例如
<a onclick="_vals('name', 'val')" href="#">My Link</a>
然后在您的PHP中,您可以使用
$val = $_POST['value'];
因此,当您单击使用JavaScript的链接时,它将发布表单数据,并且页面从该单击发回时,您可以从PHP中检索它。
添加回答
举报