Foros del Web » Programando para Internet » PHP »

Problema con xml y array

Estas en el tema de Problema con xml y array en el foro de PHP en Foros del Web. Buenas Tardes Estoy haciendo un formulario dinámico en js, y ya lo tengo solucionado, mi problema es el siguiente; mi código perfectamente genera un xml ...
  #1 (permalink)  
Antiguo 09/05/2012, 10:02
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Exclamación Problema con xml y array

Buenas Tardes

Estoy haciendo un formulario dinámico en js, y ya lo tengo solucionado, mi problema es el siguiente;
mi código perfectamente genera un xml pero de una sola linea del array
y por mas que intento no consigo hacer andar el código

Código PHP:
<?php

header
("Content-type: text/xml");
$i=0;
$cliente="C001212";


$valoritem$_REQUEST[desc][$i];
$valorcant$_REQUEST[desc][$i];
$valordesc$_REQUEST[precio][$i];


$item = array($valoritem);
$cant = array($valorcant);
$desc = array($valordesc);
echo 
'<?xml version="1.0"?>';
echo 
'<pedido>';
$pos 0;
foreach (
$item as $valor) {
      echo 
'<elemento>';
      echo 
'<cliente>';
      echo 
$cliente;
      echo 
'</cliente>';
      echo 
'<articulo>';
      echo 
$valor;
      echo 
'</articulo>';
      echo 
'<unidades>';
      echo 
$cant[$pos];
      echo 
'</unidades>';
      echo 
'<descripcion>';
      echo 
$desc[$pos];
      echo 
'</descripcion>';
      
$pos++;
      
$i++;
      echo
'</elemento>';
}
echo 
'</pedido>';
exit

/*
echo '<pre>';
print_r($_REQUEST);
echo '</pre>';
*/
?>
Pero si cambias el codigo así funciona

Código PHP:
$item = array($_REQUEST[item][1],$_REQUEST[item][2],$_REQUEST[item][3]; 
logicamente porque le estoy definiendo manualmente los arrays.
pero

He intentado programar un foreach para que me calcule los array sin resultado y nose como mas probarlo
un saludo y gracias.
el bucle del xml si que me funciona.
  #2 (permalink)  
Antiguo 09/05/2012, 10:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con xml y array

Básicamente ya tienes un array, no entiendo porque estás buscando de más.
Código PHP:
foreach ($_REQUEST['item'] as $item) {
 
// ...

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/05/2012, 10:26
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con xml y array

pero es un formulario dinámico, yo puedo entrar muchos array
Código:
Array
(
    [hiddenNeto] => 1
    [item] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 1
        )

    [desc] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 1
        )

    [precio] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 1
        )
)
Es un ejemplo, creo que no me explique bien
  #4 (permalink)  
Antiguo 09/05/2012, 10:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con xml y array

El punto es que esto redunda:
Código PHP:
array($_REQUEST[item][1],$_REQUEST[item][2],$_REQUEST[item][3]); 
Porque ahí estás creando un array con los elementos de otro array!

No hace falta, creo que el que no comprende eres tu. Sin importar si el formulario es dinámico o no tu estás recibiendo ya un array, no necesitas copiarlo ni redefinirlo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 09/05/2012, 10:52
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con xml y array

creo que ya lo tengo, échale un vistazo plis

<?php

header("Content-type: text/xml");
$cliente="C001212";

foreach ($_REQUEST['desc'] as $desc) {
}
foreach ($_REQUEST['precio'] as $precio) {
}

echo '<?xml version="1.0"?>';
echo '<pedido>';
foreach ($_REQUEST['item'] as $item) {
echo '<elemento>';
echo '<cliente>';
echo $cliente;
echo '</cliente>';
echo '<articulo>';
echo $item;
echo '</articulo>';
echo '<unidades>';
echo $desc;
echo '</unidades>';
echo '<descripcion>';
echo $precio;
echo '</descripcion>';
echo'</elemento>';
}
echo '</pedido>';
exit
?>
  #6 (permalink)  
Antiguo 09/05/2012, 10:53
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con xml y array

no me funciona porque el $desc y el $precio se pone el mismo
  #7 (permalink)  
Antiguo 09/05/2012, 11:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con xml y array

Lo que pasa es que los dos primeros foreach() no hacen nada real, sólo iteras sin sentido.

Lo que debes hacer es iterar un solo array y utilizando el índice obtener los demás elementos de los otros arreglos:
Código PHP:
foreach ($_REQUEST['item'] as $key => $item) {
  
$desc $_REQUEST['precio'][$key];
  
$precio $_REQUEST['precio'][$key];
  
// etc...

A eso le puedo llamar "arreglos paralelos", eso porque al ser similares se pueden acceder sin iterarlos todos mediante el índice en común.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 09/05/2012, 11:09
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con xml y array

Muchas gracias amigo:

también lo solucioné así:

Código PHP:
<?php

header
("Content-type: text/xml");
$cliente="C001212";

$i=0;
echo 
'<?xml version="1.0"?>';
echo 
'<pedido>';
foreach (
$_REQUEST['item'] as $item) { 
      echo 
'<elemento>';
      echo 
'<cliente>';
      echo 
$cliente;
      echo 
'</cliente>';
      echo 
'<articulo>';
      echo 
$item;  
      echo 
'</articulo>';
      echo 
'<unidades>';
      echo 
$_REQUEST['desc'][$i];
      echo 
'</unidades>';
      echo 
'<descripcion>';
      echo 
$_REQUEST['precio'][$i];     
      echo 
'</descripcion>';
      echo
'</elemento>';
$i++;
}
echo 
'</pedido>';
exit
?>
esta bien? un saludo y gracias
  #9 (permalink)  
Antiguo 09/05/2012, 11:14
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con xml y array

una consulta más para ahora generar un xml con esto? digamos que nose muestre en pantalla, simplemente que se guarde en el servidor. muchas gracias
  #10 (permalink)  
Antiguo 09/05/2012, 12:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con xml y array

Pues en lugar de hacer el echo, guardalo en un string y luego guarda ese string usando file_put_contents.

Saludos.

Etiquetas: formulario, xml
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 19:22.