0

PHPページに埋め込まれているFlashムービーがあります。PHPページには、ユーザーに値(アップロードされた画像の数)が表示されます。ユーザーが新しい画像をアップロードするときに、ページを更新せずにPHPページの値に変更を反映させたいと思います。

この値は、MySQLを使用してデータベースから取得されます。これが私がこれまでにしたことです-

値を表示したいPHPページでdivがあります

<div id="content_info"><script type="text/javascript" src="getInfo.php?group= <?php echo($groupid); ?> "></script></div>

これにより、データベースにクエリを実行し、次のような結果を出力する外部PHPファイルが呼び出されます。

Header("content-type: application/x-javascript");
//do the query with PHP and get $number and then output
echo "document.write(\" (".$number.")\")";

ページが初めて読み込まれると、正しい番号がdivに表示されるため、すべて正常に機能します。次のステップは、値が変更されたときにこのdivの内容を更新するために何かを呼び出すことです。そこで、これを行うためにjavascript関数を呼び出すようにflashでexternalInterfaceを設定します。

これは私が立ち往生しているところです、私はこのようなことをしたいです-

function ReplaceContentInContainer(id) {
var container = document.getElementById(id);
container.innerHTML = getInfo.php?type=new&group= <?php echo($groupid) ?>;
}

これを

ReplaceContentInContainer(content_info)

これはうまくいかないことに気づきましたが、誰かがこの結果を得る方法を教えてもらえますか?

どうもありがとう

4

1 に答える 1

2

group= <?php echo($groupid); ?>PHP がページを作成するときにのみ実行されます。その値を JavaScript の変数内に格納する必要があります。これが機能するかどうかを確認してください。

<div id="scriptDiv">
    <script type="text/javascript">
    <!-- store the group id -->
        var groupID = <?php echo($groupid); ?>;
        function getGroupID()
        {
           return groupID;
        }
        function updateValue(value)
        {
           document.getElementById("content_info").innerHTML = value;
        }
    </script>
    <div id="content_info">
       <!-- for initial value -->
       <script type="text/javascript" 
            src="getInfo.php?group= <?php echo($groupid); ?> ">
       </script>
    </div>
</div>

これで、フラッシュを使用できますURLLoader:

var ldr:URLLoader = new URLLoader();
var gid:String = ExternalInterface.call("getGroupID");
var req:URLRequest = new URLRequest("getInfo.php");
req.data = {type:"new", group:gid};
ldr.addEventListener(Event.COMPLETE, onLoad);
ldr.addEventListener(IOErrorEvent.IO_ERROR, onError);
ldr.load(req);

private function onLoad(e:Event):void
{
    var data:String = URLLoader(e.target).data;
    ExternalInterface.call("updateValue", data);
}
private function onError(e:IOErrorEvent):void
{
    trace("ioError");
}
于 2009-11-27T15:19:31.330 に答える