Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ces

Problema Inserção BD

Recommended Posts

Boa noite galera. A situação é a seguinte:

 

Estou utilizando um tutorial antigo para flex 3 mas que possui boa explicação. A aplicação utiliza remoteObject para se comunicar com o servidor que possiu tecnologia PHP.

 

1º)RemoteObject(Arquivo Flex olaMundo.mxml):

 

<mx:RemoteObject id="nossoObjecto" destination="amfphp" source="ola.mundo">

		<mx:method name="checkLogin" result="{lidaLogin(event)}">
			<mx:arguments>
				<user>
				""
				</user>
				<pass>
				""
				</pass>
			</mx:arguments>
		</mx:method>

		<mx:method name="buscaDados" result="{lidaBusca(event)}"/>

		<mx:method name="insereDados" result="{lidaInsere(event)}">
			<mx:arguments>
				<dados>
					""
				</dados>	
			</mx:arguments>
		</mx:method>


	</mx:RemoteObject>

 

 

2º)Campos(Arquivo Flex olaMundo.mxml)

 

<mx:Label x="10" y="46" text="Nome:" width="58"/>
			<mx:Label x="10" y="84" text="Email:" width="58"/>
			<mx:Label x="10" y="125" text="Telefone:" width="100"/>
			<mx:TextInput x="112" y="44" width="225" id="i_nome"/>
			<mx:TextInput x="112" y="82" width="225" id="i_email"/>
			<mx:TextInput x="112" y="123" width="225" id="i_telefone"/>
			<mx:Button x="377" y="160" label="Inserir Dados" width="182" click="{insere()}"/>

 

 

3º) Arquivo crud.as que contem a funcão do click do mouse:

 

 

 

import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;

// ActionScript file
[bindable]
public var dataGridData:Object;

private function lidaBusca(evt:ResultEvent):void
{
if(evt.result.busca=="OK")
{
	dataGridData = new Object;
	dataGridData = evt.result.detalhes;
	meusDados.dataProvider=dataGridData;
	if(this.currentState=="admin")
	{
		dadosAct.dataProvider=dataGridData;
		dadosDelete.dataProvider=dataGridData;
	}
}else{
	Alert.show("Impossivel encontrar dados.\n\nERRO:\n"+evt.result.detalhes);
}

}
private function insere():void
{
if((String(i_nome.text).length > 0) && (String(i_email.text).length > 0) && (String(i_telefone.text).length > 0))
{
	//novo objeto
	var objDados:Object = new Object;
	//campos de array
	objDados.nome=i_nome.text;
	objDados.email=i_email.text;
	objDados.telefone=i_telefone.text;

	//argumentos que a funcao php vai receber
	nossoObjecto.insereDados.arguments.dados=objDados;
	//chamamos o remoteObject
	nossoObjecto.insereDados.send();
}else
{
	Alert.show("Todos os campo sao necessarios");
}
}


 

4º)Arquivo mundo.php que faz a inserçao no banco

 

function insereDados($dados){

	global $con;

	$sql="INSERT INTO dadosgrid (id,nome,email,telefone) VALUES (NULL,'.$dados->nome.','.$dados->email.','.$dados->telefone.')";
	if(mysql_query($sql)){
		$resultado->insere="OK";	
	}else{
		$resultado->insere="ERRO";
		$resultado->detalhes=mysql_error();
	}
	return $resultado;
}

 

 

Peço a compreensão de todos pois estou iniciando no flex e gostaria de pedir se tem material mais atualizado pra flex 4. Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

daí tchê, tranquilo?

 

Cara... não entendi teu problema, tu ta tentando migra a tua aplicação feita no Flex 3 pro Flash Builder 4 e não tah funcionando corretamente?

 

Se for isso, qual exatamente o problema que tah ocorrendo? não ta consultando o php?

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e aí tchê!

 

teu problema é que na hora de chamar o RemoteObject tu não tá passando a variavel como parametro:

 

ao invés disso:

nossoObjecto.insereDados.arguments.dados=objDados;
//chamamos o remoteObject
nossoObjecto.insereDados.send();

 

faz isso:

//chamamos o remoteObject
nossoObjecto.insereDados.send(objDados);

 

Veja se te ajuda,

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e aí tchê!

 

teu problema é que na hora de chamar o RemoteObject tu não tá passando a variavel como parametro:

 

ao invés disso:

nossoObjecto.insereDados.arguments.dados=objDados;
//chamamos o remoteObject
nossoObjecto.insereDados.send();

 

faz isso:

//chamamos o remoteObject
nossoObjecto.insereDados.send(objDados);

 

Veja se te ajuda,

 

Abraço.

 

Boa Noite depois de muito tempo.

 

Entao fiz a alteração mas ficou na mesma.

 

Acredito eu que no meu arquivo crud.php a query não esta correta. Ja tentei de todo jeito e nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se eu não me engano(não consigo testar agora), para enviar parâmetros, seria assim:

 

nossoObjecto.insereDados.arguments = objDados;
nossoObjecto.insereDados.send();

 

mas testa assim tb se não funcionar:

 

nossoObjecto.insereDados.send(objDados);

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.