当用户在主php页面上点击“FINISH”时,我试图将js变量从我的js文件发送到另一个php文件。到目前为止,这是我的代码:
map.php
<form action="./finalmap.php">
<input class="finish-button" type="submit" value="FINISH" onclick="sendData();" />
</form>
map.js
function sendData() {
$.ajax({
method: "POST",
url: "../finalmap.php",
data: {
selectedLoc: selectionArray,
startLoc: start,
endLoc: end,
dist: distance,
locTypes: allLocations
},
beforeSend : function(http) { },
success : function(response,status,http) {
alert(response);
},
error : function(http,status,error) {
$('.response').html("<span class='error'>Something went wrong</span>");
$(".response").slideDown();
}
});
}
finalmap.php
<?php
$data = $_POST['data'];
echo $data;
?>
发布成功,我可以通过alert命令查看finalmap.php中的内容(我的代码)。当我在finalmap.php中尝试console.log $data
时,它是空的/ null。
我的目标是将数据发送到finalmap.php并重定向到它。
答案 0 :(得分:0)
./ finalmap.php不是一件事。
相反,代码必须如下所示:
<form action="/finalmap.php">
<input class="finish-button" type="submit" value="FINISH" onclick="sendData();" />
</form>
请尝试使用此功能。
编辑:OOPS抱歉,我只是CPED和PASTED。
答案 1 :(得分:0)
要解决此问题,您必须一次减少您测试的内容。您的代码有错误且不完整。因此,让我们先从错误开始:如果您使用的是AJAX,则不希望HTML以常规方式提交表单。如果你刷新页面,那么你的AJAX就不起作用了。
<button type="button" id="submit-button">FINISH</button>
注意,不需要<form>
;你通过AJAX提交。
接下来,你需要确保你的ajax函数正在被执行(因为你正在使用$.ajax
,我认为你已经加载了JQuery):
<button type="button" id="submit-button">FINISH</button>
<script>
// all listener functions need to wait until DOM is loaded
$(document).ready(function() {
// this is the same idea as your onclick="sendData();
// but this separates the javascript from the html
$('#submit-button').on('click', function() {
console.log('hello world');
});
});
</script>
您可以使用Web控制台查看console.log消息。
现在,用一个简单的帖子试试ajax命令:
<button type="button" id="submit-button">FINISH</button>
<script>
// all listener functions need to wait until DOM is loaded
$(document).ready(function() {
$('#submit-button').on('click', function() {
$.ajax({
method: "POST",
// "./finalmap.php" or "../finalmap.php"?
url: "../finalmap.php",
data: {foo: 'bar'},
success: function(response){
console.log('response is: ');
console.log(response);
}
});
});
});
</script>
<?php echo 'This is finalmap.php';
如果您在按下按钮后在网络控制台中看到This is finalmap.php
,则可以尝试发送数据。
<?php
echo 'You sent the following data: ';
print_r($_POST);
看看我们在哪里?吃大象的方法一次咬一口。