Foros del Web » Programando para Internet » PHP »

Añadir una variable a formData y recogerla en PHP

Estas en el tema de Añadir una variable a formData y recogerla en PHP en el foro de PHP en Foros del Web. Hola gente, tengo un problemilla que seguro que para alguno de vosotros es algo muy sencillo pero no encuentro las palabras para buscar la solución ...
  #1 (permalink)  
Antiguo 23/01/2015, 16:53
VityOsma
Invitado
 
Mensajes: n/a
Puntos:
Añadir una variable a formData y recogerla en PHP

Hola gente, tengo un problemilla que seguro que para alguno de vosotros es algo muy sencillo pero no encuentro las palabras para buscar la solución en Google.

Subiendo archivos mediante Drag & Drop utilizo este bucle para recorrer los archivos y añadirlos al Array formData.

for (var i = 0; i < files.length; i++) {
var formData = new FormData();
formData.append('file', files[i]);
};

$.ajax({
url: uploadURL,
type: "POST",
contentType:false,
processData: false,
cache: false,
data: formData,
success: function(data){
$("#drag-drag").html(data);
}
});

Esto solo es una parte del cogido, se manda al archivo php y lo recibo mediante $_FILES['file'], en PHP guardo la imagen y luego la muestro en #drag-drag, hasta aquí todo funciona perfectamente. El problema es que quiero añadir una variable para mandarla junto con formData, o dentro de formData.

Para más info lo que quiero hacer en PHP es utilizar es variable para ejecutar una función u otra, así puedo utilizar el mismo archivo para responder a distintas llamadas AJAX.

Como puedo enviar la variable extra? y como la recibo en PHP?

Gracias por las respuestas.
  #2 (permalink)  
Antiguo 23/01/2015, 16:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Añadir una variable a formData y recogerla en PHP

El objeto FormData es Javascript, en todo caso necesitas consultar una referencia de Javascript para FormData, tu problema nada tiene que ver con código PHP.

Ahora, al recibir la variable no cambia nada: la recibirás igual que cualquier otra variable.

Consulta el manual: http://www.php.net/variables.external
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/01/2015, 17:03
VityOsma
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Añadir una variable a formData y recogerla en PHP

Ya claro, lo que tiene que ver con PHP es que alli quiero mandar la variable jeje, pero en este caso formData lo he creado yo, lo que no se es como añadir una variable normal y corriente para mandarlo a PHP, dentro del forma data, o en $.ajax cuando pondo data: formData, añadir aqui la variable, alguien sabe como hacerlo?
  #4 (permalink)  
Antiguo 23/01/2015, 17:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Añadir una variable a formData y recogerla en PHP

Pues explica mejor lo que buscas:

a) Pasar una variable desde Javascript a FormData
b) Pasar un valor desde PHP a Javascript, y de ahí a FormData

Vamos, que leer tu mente no podemos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 23/01/2015, 17:13
VityOsma
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Añadir una variable a formData y recogerla en PHP

Lo que quiero es añadir junto con el formData otra variable

Enviar formData con los datos de los archivos y desde Javascript a PHP otra variable.

Lo que decía es que si fuese necesario esa variable podría ir incluida en el formData ya que alguna vez envío los datos de un formulario serializados e incluyo dentro un campo hidden para definir una variable y que vaya todo junto, pero eso no creo que sea posible en formData ya que no es un simple Array, asique necesitaria mandarla en la misma llamada $.ajax ademas del formData.

En resumen conseguir que el script que reciba formData reciba otra variable definida en javascript.

archivo.php
if($_POST['newVar']){
//Hacer lo que quiera con la info de:
$_FILES['file']
};
  #6 (permalink)  
Antiguo 23/01/2015, 17:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Añadir una variable a formData y recogerla en PHP

Cita:
pero eso no creo que sea posible en formData ya que no es un simple Array
¿Entonces ya revisaste la documentación de FormData y ahí te indica que es imposible?

Código Javascript:
Ver original
  1. formData.append('foo', 'bar');

https://developer.mozilla.org/es/doc...a#append%28%29
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 23/01/2015, 17:37
VityOsma
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Añadir una variable a formData y recogerla en PHP

Lo he estado mirando y si, en teoría eso debería funcionar. Lo he probado y no puedo recibir la variable en PHP, yo creo que al crear formData con archivos después no puedo añadir una variable.

Después de que el bucle del principio genere formData y añada archivo he intentado añadir una variable pero no la recibo en php.

for (var i = 0; i < files.length; i++) {
var formData = new FormData();
formData.append('file', files[i]);
}; formData.append('funcion', 'valor');

He intentado recuperar en php con $_POST['funcion'], $_REQUEST['funcion'] y ya por probar hasta con $_FILES['funcion'] pero en todos me devuelve el tipico error Undefined index: funcion in ... on line ...

Se te ocurre alguna otra forma para intentar acceder a esa variable en PHP, porque yo creo que al mezclar archivos con variable no se envía bien, que no tengo ni idea, o eso no se puede hacer o estoy haciendo algo mal.

Gracias por contestar tan rápido, así da gusto jeje.
  #8 (permalink)  
Antiguo 23/01/2015, 17:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Añadir una variable a formData y recogerla en PHP

Cita:
Se te ocurre alguna otra forma para intentar acceder a esa variable en PHP, porque yo creo que al mezclar archivos con variable no se envía bien, que no tengo ni idea, o eso no se puede hacer o estoy haciendo algo mal.
Pues ese es el tema, te toca revisar la documentación para aprender a solucionarlo correctamente.

Un hack horrible sería agregar dicho parámetro en la URL de la petición:
Código PHP:
Ver original
  1. url: uploadURL + '?foo=bar'

Y entonces la lees con $_GET['foo'], pero bueno, no se me hace muy elegante.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 23/01/2015, 18:24
VityOsma
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Añadir una variable a formData y recogerla en PHP

Ostia! pues es una buena solución, no muy profesional pero de momento me vale, ademas esa URL no se muestra en pantalla ni nada asi que no me importa que muestre parámetros, la utilizare de momento hasta que encuentre una solución mejor.

Buenas idea gracias!!

Etiquetas: Ninguno
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 11:17.