Foros del Web » Creando para Internet » Flash y Actionscript »

necesito ayuda con este script

Estas en el tema de necesito ayuda con este script en el foro de Flash y Actionscript en Foros del Web. Hola muchachos, NECESITO AYUDAAAA!!!.... no se por que no me funciona, haber.... estoy realizando una pagina web en flash y necesito interactuar con una base ...
  #1 (permalink)  
Antiguo 07/03/2008, 08:58
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años
Puntos: 1
necesito ayuda con este script

Hola muchachos, NECESITO AYUDAAAA!!!.... no se por que no me funciona, haber.... estoy realizando una pagina web en flash y necesito interactuar con una base de datos MySQL desde flash. He querido usar AMFPHP, pero mi servidor no lo soporta... snif snif... por lo que estoy utilizando la sentencia LoadVars.sendAndLoad. Pero no se porque no funciona... se queda esperando respuesta del servidor; les voy a dejar el script del archivo SWF y el script del archivo PHP, haber si alguien puede encontrar el error.... AYUDAAAAAA POR FAVOR!!!!!!!!!, ES MUUY IMPORTANTE!!!
  #2 (permalink)  
Antiguo 07/03/2008, 08:59
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años
Puntos: 1
Re: necesito ayuda con este script

ESTOS SON LOS ARCHIVOS....

ARCHIVO SWF

Código:
var contenedor:LoadVars = new LoadVars();

contenedor.onLoad = function(exito) {
    var opcion :Number;
	
    if (exito) {
        opcion = this.opcion;
		almacenar = this.respuesta;
		switch (opcion) { 
         case 1 : 
            insertar(exito);
            break; 
         case 2 : 
	    eliminar(exito);
	    break;
	 case 3 :
	    modificar(exito);
	    break;
	 case 4 :
	    consultar(exito);
	    break;
	 }
    } else {
        msj_error.text = "Error conectando con el servidor.";
    }
}


function consultar(exito:Boolean) {
    var proveedor:Array = new Array();
	btnInsertar.enabled=true;
	if (exito){ //si la consulta fue correcta 
		if (contenedor.respuesta.getLength()){ //si tenemos al menos un registro
			for (i=0; i<contenedor.respuesta.getLength();i++){ //empezamos a codificar nuestro datos
				proveedor.addItem({id:contenedor.respuesta.getItemAt(i).id,nombre:unescape(contenedor.respuesta.getItemAt(i).nombre),comentarios:unescape(contenedor.respuesta.getItemAt(i).comentarios)});
			}
			datagrid.dataProvider= proveedor;
			datagrid.getColumnAt(0).width=50;
			datagrid.getColumnAt(1).width=192.5;
			datagrid.getColumnAt(2).width=192.5;
			datagrid.selectedIndex = 0; //dejo como seleccionado el primer item del datagrid
			idtxt.text = datagrid.selectedItem.id;
			nombretxt.text = datagrid.selectedItem.nombre;
			comentariostxt.text = datagrid.selectedItem.comentarios;			
			btnModificar.enabled=btnEliminar.enabled=true;
			estadotxt.text="Consulta completada";
		}
		else{ // sino, no tenemos registro deshabilitamos los botones de eliminar y modificar
			btnModificar.enabled=btnEliminar.enabled=false;
			estadotxt.text="No hay registro que mostrar";
		}
	}
	else{
		estadotxt.text="Ocurrio un error en la consulta";
	}
}
function insertar(exito :Boolean){
	mostrarComponentes(false);	
	if (exito){ //si la operacion fue exitosa, insertamos el nuevo registro en el datagrid
		datagrid.addItem({ id: contenedor.respuesta, nombre: nombretxt.text, comentarios: comentariostxt.text });
		datagrid.getColumnAt(0).width=50;
		datagrid.getColumnAt(1).width=192.5;
		datagrid.getColumnAt(2).width=192.5;
		datagrid.selectedIndex=datagrid.getLength()-1; //dejo como seleccionado el último item del datagrid
		idtxt.text = datagrid.selectedItem.id;
		nombretxt.text = datagrid.selectedItem.nombre;
		comentariostxt.text = datagrid.selectedItem.comentarios;			
		estadotxt.text ="La inserción se realizó exitosamente";		
	} else {
		estadotxt.text ="La inserción no fue completada, intente de nuevo";
	}
}

function modificar(exito :Boolean){
	mostrarComponentes(false);
	if (exito){ //si la operacion fue exitosa, modificamos el datagrid
		datagrid.editField(datagrid.selectedIndex,"nombre",unescape(nombretxt.text));
		datagrid.editField(datagrid.selectedIndex,"comentarios",unescape(comentariostxt.text));
		estadotxt.text ="La modificacón se realizó exitosamente";
	}
	else { //sino emitimos un mensaje de error
		estadotxt.text ="La modificación no se realizo, intente de nuevo";
	}
}

function eliminar(exito :Boolean){
	mostrarComponentes(false);	
	if (exito){
		estadotxt.text = "El registro se elimino correctamente";
		aux =datagrid.selectedIndex;
		datagrid.removeItemAt(datagrid.selectedIndex);
		//una excepcion si el datagrid se queda vacio 
		//deshabilitamos los botones modificar y eliminar
		if (datagrid.getLength()==0){
			btnModificar.enabled=btnEliminar.enabled=false;
		} else {
			(aux!=0)?datagrid.selectedIndex=aux-1:datagrid.selectedIndex=0;
			idtxt.text=datagrid.selectedItem.id;
			nombretxt.text=datagrid.selectedItem.nombre;
			comentariostxt.text=datagrid.selectedItem.comentarios;
		}
	} else{
		estadotxt.text = "El registro no se elimino, operacion fallo";		
	}
}
/////////////////////////////////////////////////////////////////////////////////
/***********************Añadimos un Listener al Datadgrid***********************/
/******************************y su implementacion******************************/
datagrid.addEventListener("change",seleccion);
function seleccion (campoSelected){
	idtxt.text= campoSelected.target.selectedItem.id;
	nombretxt.text= campoSelected.target.selectedItem.nombre;
	comentariostxt.text= campoSelected.target.selectedItem.comentarios;
}

//Nota campoSelected(campoSeleccionado) nos dirá que fila fue seleccionada 
//del datagrid, y así asignaremos cada valor de la fila en su respectivo
//input text 
/////////////////////////////////////////////////////////////////////////////////




/////////////////////////////////////////////////////////////////////////////////
/**********************Objeto que servira de Listener para**********************/
/************************los Botones y su implementacion************************/

/*Nota el parametro boton es para saber quien invoco a la funcion, 
muy descriptivo no :? */
var alClick:Object = new Object;
var accion:Number;
alClick.click = function (boton){
	switch(boton.target){
		case btnConsultar: 
			servicio.consulta();
//			trace("consultar"); 
			break;
		case btnInsertar: 
			accion = 1;
			preguntatxt.text="¿Desea insertar este registro?";			
			idtxt.text="##";
			nombretxt.text="";
			comentariostxt.text="";
			nombretxt.editable=true;
			comentariostxt.editable=true;			
			mostrarComponentes(true);			
			break;
		case btnModificar: 
			accion = 2;
			preguntatxt.text="¿Desea modificar este registro?";
			nombretxt.editable=true;
			comentariostxt.editable=true;
			mostrarComponentes(true);			
			break;
		case btnEliminar: 
			accion = 3;						
			preguntatxt.text="¿Desea eliminar este registro?";
			nombretxt.editable=false;
			comentariostxt.editable=false;
			mostrarComponentes(true);
			break;
		case btnSi:
			switch(accion){
				case 1: //insertar
					contenedor.opcion=1;
                    contenedor.id=idtxt.text;
                    contenedor.nombre=nombretxt.text;
                    contenedor.comentarios=comentariostxt.text;
                    contenedor.sendAndLoad("myquery.php", contenedor, "POST");
					break;
				case 2: //modificar id,  nombre, comentarios
					contenedor.opcion=2;
                    contenedor.id=idtxt.text;
                    contenedor.nombre=nombretxt.text;
                    contenedor.comentarios=comentariostxt.text;
                    contenedor.sendAndLoad("myquery.php", contenedor, "POST");
					break;
				case 3:
					contenedor.opcion=3;
                    contenedor.id=idtxt.text;
                    contenedor.nombre=nombretxt.text;
                    contenedor.comentarios=comentariostxt.text;
                    contenedor.sendAndLoad("myquery.php", contenedor, "POST");				
					break;
			}
			break;
		case btnNo:
			mostrarComponentes(false);
			idtxt.text = datagrid.selectedItem.id;
			nombretxt.text = datagrid.selectedItem.nombre;
			comentariostxt.text = datagrid.selectedItem.comentarios;			
			modificar.enabled=eliminar.enabled=true;
			break;
	}
}
/////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////
/****************************Listener de los botones****************************/
btnConsultar.addEventListener("click",alClick);
btnInsertar.addEventListener("click",alClick);
btnModificar.addEventListener("click",alClick);
btnEliminar.addEventListener("click",alClick);
btnSi.addEventListener("click",alClick);
btnNo.addEventListener("click",alClick);
/*******************************************************************************/
/////////////////////////////////////////////////////////////////////////////////
function mostrarComponentes(booleano:Boolean){
	datagrid.enabled=!booleano;
	btnConsultar.enabled=!booleano;
	btnInsertar.enabled=!booleano;
	btnEliminar.enabled=!booleano;
	btnModificar.enabled=!booleano;
	cabeceratxt._visible=booleano;
	idtxt._visible = booleano;
	nombretxt._visible = booleano;
	comentariostxt._visible = booleano;
	preguntatxt._visible = booleano;
	btnSi._visible=booleano;
	btnNo._visible=booleano;
}

mostrarComponentes(false);

estadotxt.autoSize="left";
estadotxt.text="Consultando";
btnInsertar.enabled=false;
btnEliminar.enabled=false;
btnModificar.enabled=false;
idtxt.enabled=false;
contenedor.opcion=4;
contenedor.id="";
contenedor.nombre="";
contenedor.comentarios="";
contenedor.sendAndLoad("myquery.php", contenedor, "POST");
stop();
  #3 (permalink)  
Antiguo 07/03/2008, 08:59
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años
Puntos: 1
Re: necesito ayuda con este script

ARCHIVO PHP



Código PHP:
<?php
           
// tomo los datos enviados por el archivo swf
           
$opcion $_POST['opcion'];
           
$id $_POST['id'];
           
$nombre $_POST['nombre'];
           
$comentarios $_POST['comentarios'];


           function 
insertar($nombre,$comentarios){
                       
$nombre utf8_encode($nombre); //<-- utf8_encode para que php entienda el escape() de flash 
                    
$comentarios utf8_encode($comentarios);//<-- igual
                    //creamos la cadena de nuestra sentencia(query) SQL
                       
$sql"INSERT INTO prueba (id,nombre,comentarios) VALUES ('','".$nombre."','".$comentarios."')";
                    return 
$this->query($sql,1);//retornamos el id de nuestro registro insertado
           
}
           
//Parametro $id, para saber que registro vamos a eliminar de la Base de Datos
           
function eliminar ($id){
                       
//creamos la cadena de nuestra sentencia(query) SQL
                       
$sql"DELETE FROM prueba WHERE id='".$id."' LIMIT 1";
                    return 
$this->query($sql,0); //retornamos 1 si se elimino correctamente y 0 en caso contrario
           
}
           
//Parametros $id, $nombre y $comentarios, el $id para saber que registro vamos a modificar
           // $nombre y $comentarios para hacer la respectiva modificación de nuestro registro
           
function modificar ($id,$nombre,$comentarios){
                       
$nombre utf8_encode($nombre); //<-- utf8_encode para que php entienda el escape() de flash
                    
$comentarios utf8_encode($comentarios);
                       
//creamos la cadena de nuestra sentencia(query) SQL                    
                       
$sql "UPDATE `prueba` SET `nombre` = '".$nombre."', `comentarios` = '".$comentarios."' WHERE `id` = ".$id." LIMIT 1;";
                    return 
$this->query($sql,0); //retornamos 1 si se modifico correctamente y 0 en caso contrario
           
}
           
//Parametros ninguno
           
function consulta (){
                       
//creamos la cadena de nuestra sentencia(query) SQL
                    
$sql "SELECT * FROM prueba ORDER BY id ";
                    return 
$this->query($sql,0);  //retornamos el recordset de la consulta
           
}
           
//Parametros sql que contendra la sentencia SQL que se ejecutara 
           //y accion en tal caso de que sea un INSERT haremos una excepcion
           //y retornaremos el nuevo id del registro recien insertado
           
function query ($sql$accion){
                   
$conexmysql_connect("http://www.alexs.com.ar","alexsco","deaGFD145") or die("no se puede conectar porque ".mysql_error());
                
mysql_select_db("alexsco_AMFPHP");
                
$resultmysql_query($sql,$conex);
                if (
$accion && result){ //Excepcion del INSERT, comparamos result por si la inserción fue correcta :P
                   
$resultmysql_insert_id();
                }
                
mysql_close($conex);                   
                   return 
$result//Consultar retonara un recordSet
                                //Modificar y Eliminar 1 si fue correcto o 0 en caso contrario
                                //Insertar retornara el id recien creado 
           
}
     
     

     switch (
$opcion) {
      case 
1:
        
$respuesta insertar($nombre$comentario);
        break;
      case 
2:
        
$respuesta eliminar($id);
        break;
      case 
3:
        
$respueata modificar($id$nombre$comentario);
        break;
      case 
4:
        
$respuesta consulta();
        break;
     } 
     
// envio las respuestas al archivo swf
     
echo "&opcion=".$opcion;
     echo 
"&respuesta=".$respuesta;
     
?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:27.