-2

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



?>

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

4

3 回答 3

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

于 2012-08-27T11:21:34.907 回答
0

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

第二次,$_POST 中没有任何内容,因为此时浏览器没有发出 post 请求。

为清楚起见添加:

如果您使用 Firebug,并取出 window.location 行,您应该会看到 Ajax 请求发出以及来自服务器的响应。

于 2012-08-27T10:36:05.400 回答
0

尝试这个 :

演示.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>

输出.php

<?php
 echo "<pre>";
 print_r($_POST);
 echo "</pre>";
 exit;  
?>
于 2012-08-27T11:37:16.600 回答