Foros del Web » Programando para Internet » PHP »

PHP OO PHP vector se corta al recorrerlo con un FOR

Estas en el tema de PHP vector se corta al recorrerlo con un FOR en el foro de PHP en Foros del Web. Muy buenos días!!! a Tod@s los forer@s!!!! He de aqui de nuevo, despues de un largo tiempo........................ Tengo un problema ya desde hace como 4 ...
  #1 (permalink)  
Antiguo 19/03/2013, 09:00
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
PHP vector se corta al recorrerlo con un FOR

Muy buenos días!!! a Tod@s los forer@s!!!!

He de aqui de nuevo, despues de un largo tiempo........................

Tengo un problema ya desde hace como 4 días, en el que enviando un vector con POST a un archivo de PHP al momento de recibirlo y recorrerlo con un FOR este no lo termina de recorrer.

Les explico:

Cuando envio el vector con estos datos, el FOR en el archivo PHP no corta
el vector y los imprime todos.

Código Javascript:
Ver original
  1. vec[0]='cancion';
  2. vec[1]='dolor';
  3. vec[2]='anio';
  4. vec[3]='ubicacion';


y Recibo en php:

Código PHP:
$vecData explode(',',$_POST["elVector"]);

//en este punto me imprime el total de posiciones lo que
//significa que si envia todos los datos
echo count($vecData); 
He aqui el proble cuando mando un vector con lo siguiente:

Código Javascript:
Ver original
  1. //Aqui  en el vector vec[2] estoy sustituyendo un acento
  2. vec[0]='cancion';
  3. vec[1]='dolor';
  4. vec[2]='decepción';
  5. vec[3]='ubicacion';

y Recibo en php:

Código PHP:
$vecData explode(',',$_POST["elVector"]);

//en este punto me imprime el total de posiciones lo que
//significa que si envia todos los datos
echo count($vecData);

echo 
"Asi es como se visualiza la impresion desde php:";

//Al momento de realizar el FOR
for($i=0$i<count($vecData); $i++)
{
      
//en el momento en que el for llega a la posicion  $vecData[2]
     //este se corta imprimiendo antes de llegar al "&" osea imprime "decepci"
     //y ya no imprime la siguiente posicion!!!

      
echo "<br/>".$vecData[$i];

Código:
Asi es como se visualiza la impresion desde php:

cancion
dolor
decepci

Ya he realizado varias modificaciones pero no logro encontrar la solución ,
mucho agradeceria su gran ayuda para poder solucionar este problema que ya me trae de cabeza!!!!

Mil gracias de antemano!!!!
__________________
Solo se... que no se nada!!! 0_o
  #2 (permalink)  
Antiguo 19/03/2013, 09:22
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
Respuesta: PHP vector se corta al recorrerlo con un FOR

si partimos de la teoría básica de paso de variables, debemos recordar que las variables se separan mediante el uso de & (ya sea por GET o por POST) por GET es más visible porque lo tienes en la URL, es por esto que al leerte el & del &oacute; te lo separa como si fuese otra variable, intenta reemplazar el &oacute; por &amp;oacute; y me cuentas como te fué.

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 19/03/2013, 09:51
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: PHP vector se corta al recorrerlo con un FOR

Hola El_Metallick!!!!


Mira los datos que envio desde javascrip que es un vector por POST al archivo de PHP, si los envia todos...........

Código Javascript:
Ver original
  1. vec[0]='cancion';
  2. vec[1]='dolor';
  3. vec[2]='decepci&oacute;n';
  4. vec[3]='ubicacion';

Código PHP:
$vecData explode(',',$_POST["elVector"]);

//en este punto me imprime el total de posiciones lo que
//significa que si envia todos los datos
echo "Aqui me imprime el total de posiciones de mi vector enviado: ".count($vecData);

echo 
"Asi es como se visualiza la impresion desde php:";

//Al momento de realizar el FOR
for($i=0$i<count($vecData); $i++)
{
      
//en el momento en que el for llega a la posicion  $vecData[2]
     //este se corta imprimiendo antes de llegar al "&" osea imprime "decepci"
     //y ya no imprime la siguiente posicion!!!

      
echo "<br/>".$vecData[$i];

Código:
Aqui me imprime el total de posiciones de mi vector enviado:4

Asi es como se visualiza la impresion desde php:

cancion
dolor
decepci
Si fuera como me comentaste, al momento de imprimer con la funcion count($vecData) este imprimmiria el numero 3 y no el 4.....

Espero que me puedas seguir aconsejando!!!!
__________________
Solo se... que no se nada!!! 0_o
  #4 (permalink)  
Antiguo 19/03/2013, 10:52
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: PHP vector se corta al recorrerlo con un FOR

Hola de nuevo El_Metallick,

Ya probe como decias pero me pasa lo mismo!!!!!!

Lo que no entieno es por que al declarar el mismo vector directamente en php y recorrerlo en el for no me corta las palabras y al imprimirlas me las imprime con todo y hacnetos!!!!????????

Gracias de nuevo por la ayuda!!!!
__________________
Solo se... que no se nada!!! 0_o
  #5 (permalink)  
Antiguo 19/03/2013, 11:00
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: PHP vector se corta al recorrerlo con un FOR

podes poner el codigo javascript con el que envias los datos??
  #6 (permalink)  
Antiguo 19/03/2013, 11:23
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: PHP vector se corta al recorrerlo con un FOR

Hola alex1084!!!

Estoy trabajando con JQUERY para mis scrips y validaciones. El codigo que utilizo es el siguiente:

Código Javascript:
Ver original
  1. $(function()
  2. {
  3.     $('#IDbtnSave').click(function()
  4.     {
  5.           var vecDdescripciones = new Array();
  6.       var x = 0;
  7.  
  8.           $('[name=txtDescripciones]').each(function()
  9.       {
  10.                   var elIDdesc= $(this).attr("id");
  11.                  
  12.                   if($('#'+elIDdesc).val()=="")
  13.                  {
  14.                         alert('Porporcione la descripcion'); return false;
  15.                   }else
  16.                     {                  
  17. //esta es la funcion que utilizo para reemplazar los acentos!!!
  18. cambiar(document.frmDescs.txtDescOpt[y].value,document.frmDescs.hiDescOpt[y]);
  19.                             vecDescripciones[y]=document.frmDescs.hiDescOpt[y].value;
  20.  
  21.                         y++;
  22.                     }
  23.  
  24.           });
  25.  
  26.                                            //Con este codigo envio la informacion
  27.                                         $.ajax(
  28.                     {
  29.                         url: "../_php/InsertDesc.php",
  30.                         type: "POST",
  31.                         data: "elVector="+vecDescripciones,
  32.                         success: function(datos)
  33.                         {
  34.                             $('#aegfaqerger').html(datos);
  35.                         }
  36.                     })
  37.  
  38.  
  39.      });
  40. })


Los campos de texto los genero dinamicamente por medio de una consulta a mi base de datos!!!

El each() lo utilizo para recorrer esos campos tomando su ID para validar si contienen informacion o no!!!!

Espero esto sea suficiente!!!! muchas gracias por la ayuda!!!!
__________________
Solo se... que no se nada!!! 0_o
  #7 (permalink)  
Antiguo 19/03/2013, 11:40
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: PHP vector se corta al recorrerlo con un FOR

No veo nada extraño en tu código..

Si envías los datos sin reemplazar las tildes??
  #8 (permalink)  
Antiguo 19/03/2013, 11:47
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: PHP vector se corta al recorrerlo con un FOR

Siiii envio los datos sin reemplazar las tildes si guarda la informacion pero al presentar esa informacion me aparecen caracteres extraños!!! por eso utlizo esa funcion!!!!


Esa funcion la he estado utlizando desde hace un buen y si realiza el reemplazo de las tildes!!!!!!!............... Incluso en uno de los modulos de este mismo sistema la utlizo y funciona a la perfeccion!!! y este tambien pero al momento de que hago el recorrido con el FOR en php lo corta al primer "&" que encuentra!!!!!!!!

Ya no se que mas moverle!!!! para hacer que funcione!!!!!!!!!!!!!!
__________________
Solo se... que no se nada!!! 0_o
  #9 (permalink)  
Antiguo 19/03/2013, 11:53
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: PHP vector se corta al recorrerlo con un FOR

mmm ok mira sinceramente no se porque razón se cortan cuando lo imprimes con el for pero el comentario de El_Metallick me parece lógico, pero si te imprime caracteres extraños podrias hacer un replace antes en mandar la salida a pantalla o verificar la codificacion de tus archivos..
  #10 (permalink)  
Antiguo 19/03/2013, 13:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: PHP vector se corta al recorrerlo con un FOR

Si usas una herramienta como Firebug, ¿ves el request AJAX bien construido y los datos bien enviados?
  #11 (permalink)  
Antiguo 19/03/2013, 15:21
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: PHP vector se corta al recorrerlo con un FOR

Dios bendiga al var_dump($_POST);
  #12 (permalink)  
Antiguo 20/03/2013, 08:40
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: PHP vector se corta al recorrerlo con un FOR

alex1084 buen día.

Mira ya he realizado la prueba con lo que me habia comentado El_Metallick, pero hace lo mismo!!!! el vector se corta al mandarlo al php!!!!


Hola GatorV!!

Ya probe el firebug, pero solo puedo ver la parte del HTML............................ Al ejecutar o darle click al boton de guardar se puede ver claramente como si realiza la sustitucion de las tildes de los campos de texto a los hidden!!!!


Muchas pero muchisimas gracias por su ayuda!!!
__________________
Solo se... que no se nada!!! 0_o
  #13 (permalink)  
Antiguo 20/03/2013, 09:08
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: PHP vector se corta al recorrerlo con un FOR

Mira talvez no sea la mejor solución pero se me ocurre, porque no envías los datos tal cual los ingresa el usuario y del lado de php realizas las sustituciones necesarias???.

O porque no defines los cotejamientos de tu base y las cabeceras de tus archivos de tal manera que te permita trabajar con tildes y "ñ" sin problemas?? o porque no utilisas htmlentities, para enviar las salidas a pantalla??, hay varias opciones de como resolver el problema de los caracteres especiales... es cuestión que busques mas opciones, ya que la que hasta ahora has ocupado no te funciona-
  #14 (permalink)  
Antiguo 20/03/2013, 14:55
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: PHP vector se corta al recorrerlo con un FOR

Cita:
Iniciado por dashtrash Ver Mensaje
Dios bendiga al var_dump($_POST);
La indirecta no ha funcionado.
Haz var_dump de $_POST.
  #15 (permalink)  
Antiguo 20/03/2013, 17:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: PHP vector se corta al recorrerlo con un FOR

De hecho, Firebug te puede mostrar la consulta AJAX, con los datos que se están enviando y lo que estas recibiendo del servidor, es la mejor forma de programar cuando usas AJAX.

Etiquetas: corta, vector
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 06:14.