JavaScript - PASAR UN ARRAY COMO VALOR DE UN INPUT

 
Vista:
sin imagen de perfil
Val: 35
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Jonathan (23 intervenciones) el 11/03/2020 17:53:07
Tengo la siguiente tabla de datos

Captura

Tengo una función que recorre la tabla y va creando un array con los valores
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function datos_repetidos2(){
		var seleccion = [];
		$(".tabla_existencias tr").each(function(){
			var row = $(this).closest('tr');
			seleccion.push({
				codigo : row.find('td:eq(1)').text(),
				descripcion : row.find('td:eq(2)').text(),
				cantidad : row.find('td:eq(3)').text(),
				precio : row.find('td:eq(4)').text(),
				total : row.find('td:eq(5)').text(),
				tipo : row.find('td:eq(6)').text()
			});
		});
		$('#oculto').val("");
		$('#oculto').val(seleccion);
	}

Luego deseo pasar ese array como valor de un input y dicho input se ve de la siguiente forma

Captura2

Por que no se ven los valores como debe ser y dice object ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Alejandro (532 intervenciones) el 11/03/2020 19:10:32
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Inténtalo así:
1
$('#oculto').val( JSON.stringify(seleccion) );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 35
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Jonathan (23 intervenciones) el 11/03/2020 19:18:16
Correcto, funciona, ahora en PHP recibo los datos de la siguiente forma

1
[{"codigo":"DPF200","descripcion":"SOLUCION FILTRO DPF-200","cantidad":"1","precio":"238000","total":"238000","tipo":"SERVICIO C/RECETA"},{"codigo":"REPR001","descripcion":"RE PROGRAMACIÓN ECU DPF OFF","cantidad":"1","precio":"1","total":"1","tipo":"SERVICIO RECETA"},{"codigo":"EXTR001","descripcion":"EXTRACCIÓN CERÁMICO DPF","cantidad":"1","precio":"1","total":"1","tipo":"SERVICIO RECETA"}]

Necesito extraer cada variable del array, en php uso

1
$oculto = $_POST["oculto"];

Pero me salen los datos como menciono mas arriba
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Alejandro (532 intervenciones) el 11/03/2020 19:29:14
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
1
$oculto =  json_decode( $_POST["oculto"] );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 35
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Jonathan (23 intervenciones) el 11/03/2020 19:45:07
Si hago un var_dump a la variable $oculto obtengo lo siguiente

0 => string '[{"codigo":"DPF200","descripcion":"SOLUCION FILTRO DPF-200","cantidad":"1","precio":"238000","total":"238000","tipo":"SERVICIO C/RECETA"},{"codigo":"REPR001","descripcion":"RE PROGRAMACIÓN ECU DPF OFF","cantidad":"1","precio":"1","total":"1","tipo":"SERVICIO RECETA"},{"codigo":"EXTR001","descripcion":"EXTRACCIÓN CERÁMICO DPF","cantidad":"1","precio":"1","total":"1","tipo":"SERVICIO RECETA"}]' (length=397)

Pero yo necesito obtener cada variable por separado, el codigo,descripcion,precio,total, pero no consigo hacerlo, ya intente con un foreach, pero me da error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Alejandro (532 intervenciones) el 11/03/2020 19:53:32
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Como te dije con json_decode()
1
2
3
4
5
6
7
$oculto =  json_decode( $_POST["oculto"] );
foreach($oculto as $elemento){
	foreach($elemento as $clave=>$valor){
		echo "$clave = $valor <br />";
	}
	echo "<hr />";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 35
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Jonathan (23 intervenciones) el 11/03/2020 20:22:02
Me da error

Invalid argument supplied for foreach()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Alejandro (532 intervenciones) el 11/03/2020 22:51:36
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
:P revisa bien que es lo que recibes, probando con la informacion que das, esto funciona.
1
2
3
4
5
6
7
8
9
$oculto = '[{"codigo":"DPF200","descripcion":"SOLUCION FILTRO DPF-200","cantidad":"1","precio":"238000","total":"238000","tipo":"SERVICIO C/RECETA"},{"codigo":"REPR001","descripcion":"RE PROGRAMACIÓN ECU DPF OFF","cantidad":"1","precio":"1","total":"1","tipo":"SERVICIO RECETA"},{"codigo":"EXTR001","descripcion":"EXTRACCIÓN CERÁMICO DPF","cantidad":"1","precio":"1","total":"1","tipo":"SERVICIO RECETA"}]';
$oculto = json_decode($oculto);
 
foreach($oculto as $elemento){
	foreach($elemento as $clave=>$valor){
		echo "$clave = $valor <br />";
	}
	echo "<hr />";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 35
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Jonathan (23 intervenciones) el 12/03/2020 13:41:15
Mira si lo hago de la forma que me mencionas arriba salen así los datos.

Captura3

Pero si lo hago de la siguiente forma, me da el error que se ve en la imagen

1
2
3
4
5
6
7
8
$oculto = $_POST['oculto'];
$oculto = json_decode($oculto);
foreach($oculto as $elemento){
    foreach($elemento as $clave=>$valor){
        echo "$clave = $valor <br />";
	}
	echo "<hr />";
}

Captura4
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

PASAR UN ARRAY COMO VALOR DE UN INPUT

Publicado por Alejandro (532 intervenciones) el 12/03/2020 15:44:54
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
o_O es raro, viendo que te da
1
0 => string '[{"codigo":"DPF200","descripcion":"SOLUCION FILTRO DPF-200","cantidad":"1","precio":"238000","total":"238000","tipo":"SERVICIO C/RECETA"},{"codigo":"REPR001","descripcion":"RE PROGRAMACIÓN ECU DPF OFF","cantidad":"1","precio":"1","total":"1","tipo":"SERVICIO RECETA"},{"codigo":"EXTR001","descripcion":"EXTRACCIÓN CERÁMICO DPF","cantidad":"1","precio":"1","total":"1","tipo":"SERVICIO RECETA"}]' (length=397)

me hace suponer que quizá tengas
1
<input type="hidden" name="oculto[]" />
entonces por eso recibes un array con la cadena que es la que esperaría que recibieras.

Si es así, quita los corchetes [], si no es así intenta con
1
2
$oculto = $_POST['oculto'][0];
$oculto = json_decode($oculto);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar