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


Sending data to the clicked url via AJAX/PHP

我似乎无法将数据发送到我点击的链接。我得到的只是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页面,并出现错误,称索引"output"不存在。

<?php
$content = $_POST['output'];
echo $content;

?>

帮助任何人?这太令人困惑了。

这是因为output.php被加载了两次:一次是在Ajax请求时加载的,一次是更改window.location.时加载的

第二次,$_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>

output.php

<?php
 echo "<pre>";
 print_r($_POST);
 echo "</pre>";
 exit;  
?>