Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过AJAX/PHP将数据发送到单击的url_Javascript_Php_Ajax_Url - Fatal编程技术网

Javascript 通过AJAX/PHP将数据发送到单击的url

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;

我似乎无法将数据发送到我单击的链接。我得到的只是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;
  });

('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?顺便说一句,谢谢你的帮助。