我需要将数据从javascript传递到PHP,而无需加载页面或不点击任何内容。当我打开该页面时,它会自动将a
和b
附加到网址。提前致谢
这是我的javascript代码:
<script>
var a = "bully";
var b = "burger";
window.location.href = "somepage.php?a=" + hello + "&b=" + world;
</script>
这是PHP:
<?php
if(isset($_GET['a']) && isset($_GET['b'])){
echo $_GET['a'] . $_GET['b'];
}
?>
答案 0 :(得分:0)
在页面被发送到客户端之前处理PHP,因此在不重新加载的情况下将信息从Javascript传递到PHP的唯一方法是通过AJAX调用。
答案 1 :(得分:0)
您可以拨打AJAX电话。为了实现这一目标的快捷方式,我建议您使用jQuery来完成这项工作。 Get it here。然后你只需要做这样的事情:
var a = "bully";
var b = "burger";
$.get("somepage.php?a=" + a + "&b=" + b);
看看这&#34;得到&#34;功能有效,点击此处查看API documentation reference。
答案 2 :(得分:0)
我在Google Chrome浏览器上对此进行了测试。
<强>的script.js 强>
AJAX请求使用XMLHttpRequest对象。很好地解释了here
var a = "bully";
var b = "burger";
var url = 'process.php?a=' +a+ '&b=' +b;
console.log('sending request ...');
var xhr = new XMLHttpRequest(); // create the object
// ajax on load
xhr.addEventListener('load', function(e) {
console.log('Response loaded: ' +this.responseText);
document.body.innerHTML = this.responseText;
// change the url on the address bar
// pushState(object or string, title, newUrl)
window.history.pushState({a: a, b: b}, 'Title: ' +a+ ' ' +b, '?a=' +a+ '&b=' +b);
}, false);
// ajax on error
xhr.addEventListener('error', function(e) {
console.log('Failed to load the response.');
document.body.innerHTML = 'Failed to load the response.';
}, false);
// open(method, url, isAsynchronous). Should be called after we set all events.
xhr.open('GET', url, true); // open the connection.
xhr.send(); // send the request.
<强>的index.html 强>
只需包含javascript文件即可执行AJAX请求。
<!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<script src="script.js"></script>
</head>
<body>
</body>
</html>
<强> process.php 强>
此脚本获取javascript发送的参数。
<?php
$a = $_GET['a'];
$b = $_GET['b'];
echo $a. ' ' .$b;
<强> P.S。编辑的强>
在“load”事件中添加window.history.pushState()以更新/更改地址栏上的当前URL。请参阅here和here