كيف يمكنني استخدام externalInterface للسماح فلاش لاستدعاء جافا سكريبت لتحديث قيمة على الشاشة؟

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

سؤال

ولدي فيلم فلاش التي مطعم ب في صفحة PHP. تعرض صفحة PHP قيمة للمستخدم (عدد الصور التي تم تحميلها.). عندما يحمل المستخدم صورة جديدة أريد قيمة في صفحة PHP لعكس التغييرات دون تحديث الصفحة.

ويتم استرداد هذه القيمة من قاعدة البيانات باستخدام الخلية. حتى هيريس ما فعلت إيف حتى الآن -

في صفحة PHP حيث أريد أن تظهر قيمة لدي شعبة

<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.")\")";

عند تحميل الصفحة لأول مرة يظهر الرقم الصحيح في شعبة وذلك كل يعمل بشكل جيد. والخطوة التالية هي دعوة شيئا لتحديث محتويات هذه الدرجة عندما يتغير القيمة. ولذا فإنني سوف اقامة externalInterface في فلاش استدعاء دالة جافا سكريبت للقيام بذلك.

وهذا هو المكان الذي جلوسي، وأريد أن تكون قادرة على القيام بشيء من هذا القبيل -

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 يخلق الصفحة. يجب تخزين هذه القيمة داخل المتغير في جافا سكريبت. معرفة ما إذا كان يعمل هذا.

<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