cttogo
07.05.2008, 20:10
Hallo Forum,
ich benutze AMFPHP 1.9 mit Flex 3.0.
ich habe eine Klasse item.php.
in der Klasse sind folgende Methoden.
function setID($id, $reload = true){
if(!Tools::isNumberOr0($id)){
$err_msg = 'Die übergebene Variable $id: '.$id.' ist keine Zahl oder 0!';
$GLOBALS['DEBUG_OBJECT']->addDebugMsg(__CLASS__.'->'.__FUNCTION__.'('.')' ,$err_msg,'error',__FILE__,__LINE__);
return false;
}
$this->id = $id;
if($reload){
$this->loadItemObject();
}
return true;
}
und
function loadItemObject(){
if(!Tools::isNumberOr0($this->getID())){
$err_msg = 'Die angeforderte Variable aus dem Aufruf $this->getID() '.$this->getID().' ist keine Zahl oder 0!';
$GLOBALS['DEBUG_OBJECT']->addDebugMsg(__CLASS__.'->'.__FUNCTION__.'('.')' ,$err_msg,'error',__FILE__,__LINE__);
return $err_msg;
}
$sql = 'SELECT * FROM items WHERE(id = %u)';
$sql = sprintf($sql,
$this->getID()
);
if ( (!$this->dbObj->query($sql) ) || ($this->dbObj->getRowCount() <= 0)){
$err_msg = $this->dbObj->getLastError().' <br /> '.$sql;
$GLOBALS['DEBUG_OBJECT']->addDebugMsg(__CLASS__.'->'.__FUNCTION__.'('.')' ,$err_msg,'error',__FILE__,__LINE__);
return $err_msg;
}
$this->dbObj->getData();
$this->setCategoryID($this->dbObj->data['category_id']);
$this->setName($this->dbObj->data['name']);
$this->setDescription($this->dbObj->data['description']);
$this->setOrderNr($this->dbObj->data['order_nr']);
$this->setStateCategoryMaster($this->dbObj->data['state_category_master']);
$this->setFlashMovieID($this->dbObj->data['flash_movie_id']);
$this->setStateActive($this->dbObj->data['state_active']);
$this->item_object['id'] = $this->getID();
return 'true';
}
Die Flex Applikation sieht zur Zeit so aus:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="733" height="400" borderColor="#FFFFFF" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#CFCFCF, #CFCFCF]" applicationComplete="loadData();">
<mx:ViewStack creationPolicy="all" />
<mx:RemoteObject id="classItem" fault="faultHandler(event)" showBusyCursor="true" source="item" destination="amfphp">
<mx:method name="setID" result="setIDHandler(event)" />
<mx:method name="loadItemObject" result="loadItemObjectHandler(event)" />
<mx:method name="getItemObject" result="getItemObjectHandler(event)" />
</mx:RemoteObject>
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import mx.controls.Button;
import com.allmediax.DataHandler;
private var bla:Boolean;
[Bindable]
public var item_id:String;
private function loadData():void{
// The FlashVars
var item:String = 'Item ID is ';
var myDate:Date = new Date();
item_id = Application.application.parameters.itemid;
item = item + item_id + ' ' + myDate.toString()+' !';;
info.text = item;
classItem.setID(item_id,false);
}
/* RemoteObject Error Handling */
private function faultHandler(fault:FaultEvent):void{
Alert.show(fault.fault.faultCode.toString());
}
private function setIDHandler(event:ResultEvent):void{
var bool:Boolean
bool = event.result as Boolean;
if(bool == true){
Alert.show('Ergebnis von setID() ist wahr');
classItem.loadItemObject.send();
} else{
Alert.show('Ergebnis von setID() ist falsch');
}
}
private function loadItemObjectHandler(event:ResultEvent):void{
var bool:String;
bool = event.result as String;
if(bool == 'true'){
Alert.show('Ergebnis von loadItemObject() ist wahr');
classItem.getItemObject.send();
} else{
Alert.show('Ergebnis von loadItemObject() ist ' + bool);
}
}
private function getItemObjectHandler(event:ResultEvent):void{
Alert.show('Aufruf von getItemObjectHandler ');
var dataArray:Array;
dataArray = event.result as Array;
Alert.show(dataArray.toString());
}
]]>
</mx:Script>
<mx:Label x="10" y="10" width="411" id="info" text="Toms Test"/>
<mx:Canvas x="581" y="0" width="152" height="46" id="can_title" backgroundColor="#C3BFBF">
<mx:Label x="10" y="10" text="Label" width="132" fontSize="12" fontWeight="bold" textAlign="right" id="lbl_title"/>
</mx:Canvas>
</mx:Application>
Wenn ich jetzt mit setID die item_id übergebe, ist diese nicht mehr vorhanden wenn ich mit loadItemObject das Objekt zur id laden möchte.
Wie kann ich dieses Problem lösen?
Vielen Dank fürs lesen.
Tom
ich benutze AMFPHP 1.9 mit Flex 3.0.
ich habe eine Klasse item.php.
in der Klasse sind folgende Methoden.
function setID($id, $reload = true){
if(!Tools::isNumberOr0($id)){
$err_msg = 'Die übergebene Variable $id: '.$id.' ist keine Zahl oder 0!';
$GLOBALS['DEBUG_OBJECT']->addDebugMsg(__CLASS__.'->'.__FUNCTION__.'('.')' ,$err_msg,'error',__FILE__,__LINE__);
return false;
}
$this->id = $id;
if($reload){
$this->loadItemObject();
}
return true;
}
und
function loadItemObject(){
if(!Tools::isNumberOr0($this->getID())){
$err_msg = 'Die angeforderte Variable aus dem Aufruf $this->getID() '.$this->getID().' ist keine Zahl oder 0!';
$GLOBALS['DEBUG_OBJECT']->addDebugMsg(__CLASS__.'->'.__FUNCTION__.'('.')' ,$err_msg,'error',__FILE__,__LINE__);
return $err_msg;
}
$sql = 'SELECT * FROM items WHERE(id = %u)';
$sql = sprintf($sql,
$this->getID()
);
if ( (!$this->dbObj->query($sql) ) || ($this->dbObj->getRowCount() <= 0)){
$err_msg = $this->dbObj->getLastError().' <br /> '.$sql;
$GLOBALS['DEBUG_OBJECT']->addDebugMsg(__CLASS__.'->'.__FUNCTION__.'('.')' ,$err_msg,'error',__FILE__,__LINE__);
return $err_msg;
}
$this->dbObj->getData();
$this->setCategoryID($this->dbObj->data['category_id']);
$this->setName($this->dbObj->data['name']);
$this->setDescription($this->dbObj->data['description']);
$this->setOrderNr($this->dbObj->data['order_nr']);
$this->setStateCategoryMaster($this->dbObj->data['state_category_master']);
$this->setFlashMovieID($this->dbObj->data['flash_movie_id']);
$this->setStateActive($this->dbObj->data['state_active']);
$this->item_object['id'] = $this->getID();
return 'true';
}
Die Flex Applikation sieht zur Zeit so aus:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="733" height="400" borderColor="#FFFFFF" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#CFCFCF, #CFCFCF]" applicationComplete="loadData();">
<mx:ViewStack creationPolicy="all" />
<mx:RemoteObject id="classItem" fault="faultHandler(event)" showBusyCursor="true" source="item" destination="amfphp">
<mx:method name="setID" result="setIDHandler(event)" />
<mx:method name="loadItemObject" result="loadItemObjectHandler(event)" />
<mx:method name="getItemObject" result="getItemObjectHandler(event)" />
</mx:RemoteObject>
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import mx.controls.Button;
import com.allmediax.DataHandler;
private var bla:Boolean;
[Bindable]
public var item_id:String;
private function loadData():void{
// The FlashVars
var item:String = 'Item ID is ';
var myDate:Date = new Date();
item_id = Application.application.parameters.itemid;
item = item + item_id + ' ' + myDate.toString()+' !';;
info.text = item;
classItem.setID(item_id,false);
}
/* RemoteObject Error Handling */
private function faultHandler(fault:FaultEvent):void{
Alert.show(fault.fault.faultCode.toString());
}
private function setIDHandler(event:ResultEvent):void{
var bool:Boolean
bool = event.result as Boolean;
if(bool == true){
Alert.show('Ergebnis von setID() ist wahr');
classItem.loadItemObject.send();
} else{
Alert.show('Ergebnis von setID() ist falsch');
}
}
private function loadItemObjectHandler(event:ResultEvent):void{
var bool:String;
bool = event.result as String;
if(bool == 'true'){
Alert.show('Ergebnis von loadItemObject() ist wahr');
classItem.getItemObject.send();
} else{
Alert.show('Ergebnis von loadItemObject() ist ' + bool);
}
}
private function getItemObjectHandler(event:ResultEvent):void{
Alert.show('Aufruf von getItemObjectHandler ');
var dataArray:Array;
dataArray = event.result as Array;
Alert.show(dataArray.toString());
}
]]>
</mx:Script>
<mx:Label x="10" y="10" width="411" id="info" text="Toms Test"/>
<mx:Canvas x="581" y="0" width="152" height="46" id="can_title" backgroundColor="#C3BFBF">
<mx:Label x="10" y="10" text="Label" width="132" fontSize="12" fontWeight="bold" textAlign="right" id="lbl_title"/>
</mx:Canvas>
</mx:Application>
Wenn ich jetzt mit setID die item_id übergebe, ist diese nicht mehr vorhanden wenn ich mit loadItemObject das Objekt zur id laden möchte.
Wie kann ich dieses Problem lösen?
Vielen Dank fürs lesen.
Tom