-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 が 2 回ロードされているためです。1 回は Ajax リクエストで、もう 1 回は window.location を変更したときです。

2 回目は $_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>

output.php

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