Comunidad de diseño web y desarrollo en internet online

Llenar un Combobox.

Citar            
MensajeEscrito el 08 Ene 2014 02:14 pm
Hola, he tratado de ingresar datos a un combobox desde una tabla, pero no muestra ningun dato, les coloco el codigo respectivo.

prueba.xml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="servicioCategorias.send()">

<mx:HTTPService id="servicioCategorias" url="http://localhost/demo2-debug/xmlcategorias.php"/>

<mx:ComboBox x="41" y="30" id="cboCategorias"
dataProvider="{servicioCategorias.lastResult.categorias.categoria}"
labelField="Descripcion" >

</mx:ComboBox>
</mx:Application>

xmlcategorias.php

<?php
include("modelo.mysql.php");
$modelo = new modelo;
$fichas = $modelo->parametros();

$cadenaXML.="</categorias>";

foreach ($fichas AS $con_tal):

$cadenaXML.="<categoria><Cod>".$con_tal['idParametros']."</Cod>".
"<Descripcion>".$con_tal['ele_par']."</Descripcion>".
"</categoria>";

$i++;
endforeach;

$cadenaXML.="</categorias>";

print($cadenaXML);

?>

modelo.mysql.php
.
.
.
public function parametros()
{

$query="SELECT * FROM parametros WHERE est_par='Activo';";
$sth = $this->dbh->prepare($query);
$sth->execute();
$result = $sth->fetchAll();
foreach ($result AS $row)
{
$ficha = array(
"idParametros" => $row["idParametros"],
"ele_par" => $row["ele_par"],

);
$con_tal[] = $ficha;
}
$sth = null;
return $con_tal;
}
.
.
.

He probado que muestre datos con la llamada de xmlcategorias.php en el browser y muestra datos, pero en el combo no, me pueden ayudar con esto?, gracias.

Saludos
Alejandro.

Por asola66

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Ene 2014 03:32 pm
Pero el servicio adem[as de declararlo tienes que llamarlo, agregar un onResult y recién allí asignar al combobox

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Ene 2014 03:45 pm

solisarg escribió:

Pero el servicio adem[as de declararlo tienes que llamarlo, agregar un onResult y recién allí asignar al combobox

Jorge


Jorge, gracias por contestar, hay un ejemplo de lo que quiero hacer que funciona, estos son los datos:

demo4.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="servicioCategorias.send()">

<mx:HTTPService id="servicioCategorias" url="http://localhost/demo7-debug/xmlcategorias.php"/>

<mx:ComboBox x="41" y="30" id="cboCategorias"
dataProvider="{servicioCategorias.lastResult.categorias.categoria}"
labelField="Descripcion" >

</mx:ComboBox>


</mx:Application>

xmlcategorias.php

<?php

$servidor = "localhost";
$basededatos = "baseempresa";
$usuario="root";
$clave="123456";
$cn=mysql_connect($servidor,$usuario,$clave);
mysql_select_db($basededatos,$cn);

$consulta="Select IdCategoria, NombreCategoria from categorias";
$rsCategorias=mysql_query($consulta,$cn);

$cadenaXML="<categorias>";
while($fila_rsCategorias=mysql_fetch_assoc($rsCategorias)){
$cadenaXML.="<categoria><Cod>".$fila_rsCategorias['IdCategoria']."</Cod>".
"<Descripcion>".$fila_rsCategorias['NombreCategoria']."</Descripcion>".
"</categoria>";
}

$cadenaXML.="</categorias>";
mysql_free_result($rsCategorias);
print($cadenaXML);

?>

El php es diferente al que hice, ya que este tiene los datos de conexión con el servidor en el mismo archivo.

Ahora al ejecutar el que cree, aparece este error:

[RPC Fault faultString="Error #2070: Security sandbox violation: caller cannot access Stage owned by ." faultCode="Client.CouldNotDecode" faultDetail="null"]
at mx.rpc.http::HTTPService/http://www.adobe.com/2006/flex/mx/internal::processResult()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\http\HTTPService.as:842]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:186]
at mx.rpc::Responder/result()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\Responder.as:41]
at mx.rpc::AsyncRequest/acknowledge()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:74]
at DirectHTTPMessageResponder/completeHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:381]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

De acuerdo a lo que vi en internet, hace referencia a una mala construcción del XML.

Gracias.

Saludos.

Por asola66

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 Ene 2014 04:05 pm
Abre el PHP, copia el XML que produce, hardcodéalo dentro de Flex para ver si el combobox funciona (en la ayuda en la entrada de combobox creo que tienen un ejemplo) Si eso funciona, entonces probablemente no sea el formato, sino tendrá que modificar el PHP

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Ene 2014 06:46 pm
Jorge, no se a que te refieres con "hardcodealo", soy nuevo en esto de Flex, saludos.

Por asola66

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 Ene 2014 07:31 pm

asola66 escribió:

Jorge, no se a que te refieres con "hardcodealo", soy nuevo en esto de Flex, saludos.


Jorge, con esto funciono:

<?php

include("modelo.mysql.php");
$modelo = new modelo;
$fichas = $modelo->parametros();

echo '<?xml version="1.0"?>';
echo '<categorias>';
$pos = 0;
foreach ($fichas as $con_tal) {
echo '<categoria>';
echo '<cod>';
echo $con_tal['idParametros'];
echo '</cod>';
echo '<Descripcion>';
echo $con_tal['ele_par'];
echo '</Descripcion>';
$pos++;
echo '</categoria>';
}
echo '</categorias>';
?>

Saludos.

Por asola66

3 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.