簡體   English   中英

從FLEX轉換為PHP

[英]casting from FLEX to PHP

AS3代碼

<fx:Declarations>
    <!-- this is the RemoteObject  used to make the RPC calls -->
    <mx:RemoteObject id="myRemote" destination="MyService" source="MyService"
       endpoint="http://localhost/amfphp/gateway.php"                
            showBusyCursor="true"/>

</fx:Declarations>

protected function button1_clickHandler(event:MouseEvent):void
{
    var aut:VOAuthor;  // value object class
    aut = new VOAuthor();
    aut.id_aut = 3;
    aut.fname_aut = "test";
    aut.lname_aut = "123";
    myRemote.saveData(aut);
}

接收PHP代碼

public function saveData($author) 
{
   $mysql = mysql_connect("localhost", "mx112", "xxxxxx");          
   mysql_select_db("flex360");      
   $query = "INSERT INTO authors (fname_aut, lname_aut) VALUES ('".$author->fname_aut."', '".$author->lname_aut."')";          
   $result = mysql_query($query);                 
   return $author;
}


<?php
class VOAuthor {   
 public $id_aut;    
 public $fname_aut;    
 public $lname_aut;        
 var $_explicitType="org.corlan.VOAuthor";}
?>

Flex網絡監視器響應:原始視圖

{lname_aut=123, _explicitType=org.corlan.VOAuthor, fname_aut=test, id_aut=3}

但是,如果我在php代碼的末尾這樣做

 return $author->lname_aut;

網絡監視器響應為NULL

所以問題是我可以打印數組,但如何將數組轉換為已知的php類型? 5天后,我終於想出了使用amfphp的flex和mysql,請幫忙嗎?

是的,您需要注冊您的課程,另一種選擇是在Flex VO聲明中使用元數據標簽。

package VO
{
    [RemoteClass(alias="org.corlan.VOAuthor")]
    public class VOAuthor
    {
        private var id_aut   : int;
        public var fname_aut : String;
        public var lname_aut : String;
...

希望能有所幫助,

羅傑

PS。 可以在這里找到更詳細的說明(對我有幫助): http : //www.brentknigge.com/?q= node/ 499

如果使用amfphp和Flash,則必須注冊VO:

import org.corlan.VOAuthor;
// ...
registerClassAlias("org.corlan.VOAuthor", VOAuthor);

只有這樣PHP才能識別您要從ActionScript發送它的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM