我似乎无法将数据发送到我点击的链接。我得到的只是我的php文件中未定义的索引。
<a href="output.php"> Click me </a>
('a').click(function(){
href = "output.php";
$.post( 'output.php', { output: "hello"},
function( data ) {
window.location = href;
}
);
return false;
});
ajax成功发送,但页面重定向到output.php页面,错误表明索引“输出”不存在。
<?php
$content = $_POST['output'];
echo $content;
?>
帮助任何人?这太令人困惑了。
答案 0 :(得分:0)
这是因为output.php被加载了两次:一次是在Ajax请求上,一次是在你更改window.location时。
第二次,$ _POST中没有任何内容,因为浏览器此时没有发布帖子请求。
增加清晰度:
如果您使用Firebug并取出window.location行,您应该会看到Ajax请求以及服务器的响应。
答案 1 :(得分:0)
好。我仍然不确定你要做什么,或者你发布的代码与它有什么关系。但是如果你想通过Ajax将数据发送到服务器,然后让浏览器加载output.php并显示这些数据,你可以这样做:
在你的PHP中:
if(isset($_POST["output"])){
$output = $_POST["output"];
echo $output;
} elseif (isset($_GET["output"])){
$output = $_GET["output"];
echo $output;
}
在你成功的回调中:
window.location = href + "?output="+data
答案 2 :(得分:0)
试试这个:
Demo.php
<html>
<head>
<title>Demo</title>
</head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript" ></script>
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(){
$.post( 'output.php', { output: "hello"},function( data ) {
$("div").append(data);
}
);
});
});
</script>
<body>
<a href="#">Click Me</a>
<div></div>
</body>
</html>
output.php
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
exit;
?>