Flash가 JavaScript를 호출하여 화면에서 값을 업데이트 할 수 있도록 externalInterface를 사용하려면 어떻게합니까?

StackOverflow https://stackoverflow.com/questions/1809168

문제

PHP 페이지에 포함 된 플래시 영화가 있습니다. 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 기능을 호출하여이를 수행합니다.

이것은 내가 붙어있는 곳입니다. 나는 이런 일을 할 수 있기를 원합니다.

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

그리고 이것을 전화하십시오

ReplaceContentInContainer(content_info)

나는 이것이 효과가 없다는 것을 알고 있지만 누구 든지이 결과를 얻는 방법을 보여줄 수 있습니까?

많은 감사합니다

도움이 되었습니까?

해결책

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");
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top