我正在尝试使用ajax将数据发送到php并同时重定向到该php文件但是当我重定向到php文件时,ajax似乎没有发送数据。我想实现一些东西,其中点击一个按钮,并使用ajax将数据发送到php,同时重定向到该php文件,以通过显示它来查看发送的数据。我没有使用像window.location="ajaxtest.php?data=data"
这样的东西的原因是因为我将在谷歌地图api中使用它,如果我点击一个地方的按钮,那么我将重定向到地图页面并根据ajax发送到php文件的id以及基于该id生成的坐标显示特定位置的标记。
ajaxtest.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3
/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#button").click(function(){
var data = "test";
$.post("ajaxtest.php",{
data: data
},function(data, status){
window.location="ajaxtest.php";
});
});
});
</script>
<button id="button">test</button>
</body>
</html>
ajaxtest.php
<?php
if(isset($_POST['data'])){
echo $_POST['data'];
}
?>
答案 0 :(得分:0)
所以,这不是HTTP,AJAX或PHP的工作方式。当您进行重定向时,没有任何POST数据,因为重定向是来自AJAX帖子的单独请求。你想要的是做一个AJAX帖子并以某种方式消耗你页面上的响应,而根本不进行重定向。
答案 1 :(得分:0)
似乎ajax似乎不是这里的方式。如果您想重定向到其他页面,请执行window.location.href = 'ajaxtest.php?id='+locationId;
和ajaxtest.php:
<?php
$id = isset($_GET['id']) ? (int) $_GET['id'] : null;
if ( ! $id) {
die('ID missing');
}
// Show marker
?>