Javascript 通过AJAX/PHP将数据发送到单击的url
我似乎无法将数据发送到我单击的链接。我得到的只是php文件中一个未定义的索引Javascript 通过AJAX/PHP将数据发送到单击的url,javascript,php,ajax,url,Javascript,Php,Ajax,Url,我似乎无法将数据发送到我单击的链接。我得到的只是php文件中一个未定义的索引 <a href="output.php"> Click me </a> ('a').click(function(){ href = "output.php"; $.post( 'output.php', { output: "hello"}, function( data ) { window.location = href;
<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;
});
('a')。单击(函数(){
href=“output.php”;
$.post('output.php',{output:“hello”},
功能(数据){
window.location=href;
}
);
返回false;
});
ajax成功发送,但页面重定向到output.php页面,错误提示索引“output”不存在
<?php
$content = $_POST['output'];
echo $content;
?>
有人帮忙吗?这太令人困惑了。这是因为output.php被加载了两次:一次是在Ajax请求时加载,一次是在更改window.location时加载 第二次,$\u POST中没有任何内容,因为此时浏览器没有发出POST请求 为清晰起见,增加了:
如果您使用Firebug,并取出window.location行,您应该会看到Ajax请求发出,以及服务器的响应。好的。我仍然不确定你想做什么,或者你发布的代码与它有什么关系。但是,如果希望通过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
尝试以下操作:
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>
演示
$(文档).ready(函数(){
$(“a”)。单击(函数(){
$.post('output.php',{output:hello},函数(数据){
$(“div”)。追加(数据);
}
);
});
});
output.php
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
exit;
?>
感谢您的澄清,但是有没有办法在发送ajax时将其加载到页面上?ajax的工作原理并非如此。Ajax请求output.php。那时,$\u POST就有了你的价值。当你回显时,响应确实会进入浏览器,但你必须在成功回拨中对其进行处理。尝试以下操作:删除window.location语句,或者只注释掉它。将其替换为:console.log(data)
在您的控制台中,您将看到您从服务器回显的内容。那么有什么方法可以解决这个问题吗?我只是想把文本/字符串发送到我点击的链接onoutput.php理论上可以是一个完整的页面。您甚至可以在成功回调中执行$(body).html(data)
。或者只是把内容放进一个表格我想我知道你在解释什么。。。基本上是从output.php加载内容,替换当前内容而根本不更改url?顺便说一句,谢谢你的帮助。