Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/07/2011, 14:50
djhersie
 
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problema al enviar datos de un Formulario utilizando Ajax y jQuery

Hola, Estoy casi un 99% seguro que es el siguiente error:

Cuando pones el tipo de entrada como texto no te marca ningún error ya que el php así como lo tienes procesa solo una cadena de texto.

Pero cuando cambias el tipo de entrada a un archivo te marca el error por que no puede procesar un archivo.

Entonces lo que debes hacer es procesar la imagen por separado dentro del mismo archivo PHP, y después el mismo proceso te devuelva una url donde se almaceno esa imagen y lo colocas en donde procesas todo junto.

Es decir algo así:

Código HTML:
<form action="pross.php" method="post" enctype="multipart/form-data">
<!--Es muy importante que pongas el tipo de encriptacion como "multipart/form-data" -->
Nombre del Alumno: <input type="text" name="name"><br>
Edad: <input type="text" name="edad"><br>
Foto: <input type="file" name="img"><br>
<input type="submit" value="Enviar">
</form> 
Y el PHP:
Código PHP:
<?php
/* Aquí rescatamos los datos*/
$nombre $_POST[name];
$edad $_POST[edad];

/* Aquí rescatamos información de la imagen para comparar*/
$typefile $_FILES['img']['type'];
$sizefile $_FILES['img']['size'];

/*Aqui comparamos el formato permitido y el tamaño permitido con el archivo subido*/ 
if (!((strpos($typefile"gif") || strpos($typefile"jpeg")) && ($sizefile 500000))) { 
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 500 Kb máximo.</td></tr></table>";
}else{ 
/* Aquí le damos un nombre y una ruta de subida al archivo. (El formato se lo das tu o lo configuras a ke sea cualquiera de los dos.) */
    
if (move_uploaded_file($HTTP_POST_FILES['img']['tmp_name'], $nombre.''.".jpg")){ 
       echo 
"El archivo ha sido cargado exitosamente."
    }else{ 
       echo 
"Ocurrió algún error al subir el fichero. No se guardo!!!"
    } 
}

//para este paso ya tendremos la url de la imagen subida

$url $_SERVER['SERVER_NAME'].''."/directoriodelaimagen/".''.$nombre.''.".jpg";

/* con la Variable url lo metes de nuevo al proceso que tu estas haciendo pero ya como una cadena de texto y listo lo podrás procesar sin problemas para meterlo a tu BD :)*/
?>
ya tu editas a tus necesidades el código, de igualmanera la asignación de nombres del archivo de imagen... etc etc etc....

el JQuery no te afectara nada... de hecho no tiene nada que ver por que el AJAX lo utilizas del lado cliente y el PHP lado servidor :S

Saludos... :)