0

私はmyidurl.phpページに渡し、これもajaxリクエストでロードしています。同時にmyid、url.php 以外のファイルに投稿したいと考えています。x.php、y.php のように。

FB.api('/me?fields=movies,email,name', function(mydata) {
           var email=mydata.email;
              var json = JSON.stringify(mydata.movies.data);
              var a = JSON.parse(json);
              $.post('movies_db.php',{'myd':a, name: name, email: email, myid:myid}, function(data) 
                     {
                       $.ajax({
                         url:'url.php'
                         ,async:     true
                         ,type : 'POST'
                         ,cache:     false
                         ,data : 'myid=' + myid   //Here I post myid to url.php. How can I post it to other files like x.php , y.php on same moment?
                         ,dataType:  'html'
                         ,success:   function(data){
                           $('body').html(data);
                           FB.XFBML.parse();
                         }
                       }
                             );

                     }
                    );

要点は、ユーザーがログイン操作を実行した後、さまざまなページで現在のuser_ideiを使用したいということです。myid

アップデート

index.php変数を からに投稿しますurl.php。index.php 内: $.ajax({ url:'url.php' ,async: true ,type : 'POST' ,cache: false ,data : 'myid=' + myid //ここで myid を url.php に投稿します. 同時に x.php 、 y.php などの他のファイルに投稿するにはどうすればよいですか? ,dataType: 'html' ,success: function(data){}

url.php で私は recv します:

<?php
//sent has value "http://www.paulgraham.com/herd.html"
$url=$_POST['myid'];
?>

今、url.php私も持っていると仮定します:

<script>
function funInclude()
{
  include "data1.php";
  include "data2.php";
}
</srcipt>

それで、data1.php と daa2.php の両方が正しく受信されmyidますか?

4

1 に答える 1

1

2 つのオプションがあります。

  1. 最初の ajax 呼び出しの成功コールバック内にさらに 2 つの ajax 呼び出しを配置し​​ます。

  2. url.phpページに、他の 2 つの php ページを含めるだけで、変数データも取得されます。

オプション 2 を選択した場合は、関数呼び出し内にインクルードを実行して、それらのページの変数を呼び出しページから部分的に分離することをお勧めします

編集:オプション#2を説明し、それを関数呼び出しに入れるには:

PHP では、ファイルをインクルードすると、他のページを単に「呼び出す」だけでなく、現在実行中のページの一部であるかのようにコードをインクルードします。それらは 1 つのページとしてまとめられます。page 1これは、 を含むがとpage 2同じ名前の変数を持ち、その変数を変更する可能性があるため、予期しない問題を引き起こす可能性があります。これにより、 で予期しない変数値が発生する可能性があります。page 2page 2page 1

これを考慮して、PHP では、関数内でインクルードを呼び出すことにより、インクルード ページとその変数のスコープを (部分的に) 制限できます。

「calling.php」の例

<?php
//This included page's variables are accessible as though they were in this "calling.php" page
include "included.php";

function restrictScope()
{
    //This page's variables/changes are only accessible inside this function
    include "included2.php";
}

http://php.net/manual/en/function.include.php

編集:完全な作業例

これはベースページです: include.php

<!DOCTYPE html>
<html>
    <head>

    </head>
    <body>
        <form action="include.php" method="POST">
            <input type="hidden" name="myid" value="3" />
            <input type="submit" name="submit" value="submit" />
        </form>
    </body>
</html>
<?php
if ( $_SERVER[ "REQUEST_METHOD" ] == "POST" )
{
    //Let's call included.php
    passOff();

    //Now let's check it actually did it
    $savedId = ( file_exists( "myid.txt" ) ) ? file_get_contents( "myid.txt" ) : "null";

    echo "MyId: " . $savedId;
}

function passOff()
{
    include "included.php";
}
?>

これは含まれているページです: included.php

<?php
if ( $_SERVER[ "REQUEST_METHOD" ] == "POST" )
{
    //Create and write the "myid"
    file_put_contents( "myid.txt", $_POST[ "myid" ] );
}
?>

重要: この例を機能させるには、Web フォルダーへの書き込み権限が必要です。ただし、ファイルの書き込みが失敗した場合でも、含まれているページはポストされた変数を引き続き取得します。

于 2013-10-21T05:11:24.110 に答える