24th September 2008

Flex y PHP

posted in PHP, Programacion |

Continuando con la serie de minitutoriales dedicados a la integración entre Adobe Flex y una base de datos Mysql, vamos a ilustrar un nuevo ejemplo de inserción de datos a través de nuestra pasarela PHP.

Para ello vamos a seguir trabajando sobre el primer ejemplo que teníamos y vamos a crear un nuevo estado con el nombre “insert”, donde pondremos el formulario de inserción de un nuevo producto.

Formulario de Inserción de Productos

El código fuente sería el siguiente:

  1. <mx:states>
  2.     <mx:State name=“insert”>
  3.         <mx:RemoveChild target=“{button1}”/>
  4.         <mx:RemoveChild target=“{dgProductos}”/>
  5.         <mx:AddChild position=“lastChild”>
  6.             <mx:Panel x=“10″ y=“10″ width=“319″ height=“215″layout=“absolute” title=“Nuevo Producto”>
  7.                 <mx:Form x=“0″ y=“0″>
  8.                     <mx:FormItem label=“Referencia”>
  9.                         <mx:TextInput id=“referencia” width=“106″/>
  10.                     </mx:FormItem>
  11.                     <mx:FormItem label=“Nombre”>
  12.                         <mx:TextInput id=“nombre”/>
  13.                     </mx:FormItem>
  14.                     <mx:FormItem label=“Precio”>
  15.                         <mx:TextInput id=“precio”/>
  16.                     </mx:FormItem>
  17.                 </mx:Form>
  18.                 <mx:ControlBar horizontalAlign=“right”>
  19.                     <mx:Button label=“Cancelar”click=“this.currentState=””/>
  20.                     <mx:Button label=“Insertar” id=“botInsertar”click=“insertaProducto()”/>
  21.                 </mx:ControlBar>
  22.             </mx:Panel>
  23.         </mx:AddChild>
  24.     </mx:State>
  25. </mx:states>

 

Por otra parte deberemos crear una llamada HTTPService para llamar al fichero PHP que se encarga de la inserción. Destacar que debemos poner el mismo método de petición (GET o POST) en ambos sitios:

  1. <mx:HTTPService id=“insertProd”url=“http://localhost/lsensualite/xml/insertProductos.php”method=“GET” resultFormat=“text” result=“resultHandler(event)”/>

 

(Fichero PHP)

  1. if(!($link=mysql_connect(“localhost”,“[usuario]“,“[contraseña]“))){
  2.      echo “Error conectando a la base de datos.”;
  3.      exit();
  4. }
  5. if (!mysql_select_db(“[nombre_bd]“,$link)) {
  6.      echo “Error seleccionando la base de datos.”;
  7.      exit();
  8. }
  9.  
  10. $sql = “INSERT INTO productos (referencia, nombre, precio) “;
  11. $sql .= “VALUES (’” . $_GET["referencia"] . “‘,’” . $_GET["nombre"]“‘,” . $_GET["precio"] . “) “;
  12.  
  13. $result = mysql_query($sql,$link);

 

Por último nos queda definir la función que se desencadenará al pulsar el botón insertar del formulario:

  1. <mx:Script>
  2.     <![CDATA[         
  3.         import mx.rpc.events.ResultEvent;
  4.            
  5.         public function resultHandler( event: ResultEvent ):void {
  6.             // Refresco el DataGrid del primer estado
  7.             prodRPC.send();           
  8.         }   
  9.        
  10.         public function insertaProducto():void {
  11.             // Recojo los parámetros
  12.             var parametros:Object = new Object;
  13.             parametros.referencia = referencia.text;
  14.             parametros.nombre = nombre.text;
  15.             parametros.precio = precio.text;
  16.             // Llamo a PHP
  17.             insertProd.send(parametros);
  18.             // Vuelvo al estado inicial
  19.             this.currentState = "";    
  20.         }
  21.     ]]>
  22. </mx:Script>
This entry was posted on Wednesday, September 24th, 2008 at 18:15 and is filed under PHP, Programacion. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply