Octavo video de la serie de Aprende a programar desde cero (SIN CENSURA). En este video veremos como utilizar la estructura de control for en javascript.
Categoría: Javascript
7.- Arreglos en #javascript – Aprende a programar desde cero (SIN CENSURA)
Septimo video de la serie de Aprende a programar desde cero (SIN CENSURA). En este video veremos como crear arreglos en javascript, los cuales nos serviran para guardar muchos valores en una variable.
6.- Funciones que regresan valor en #javascript – Aprende a programar desde cero (SIN CENSURA)
Sexto video de la serie de Aprende a programar desde cero (SIN CENSURA). En este sexto video veremos como crear funciones que regresen un valor en javascript.
5.- Funciones con parametros en #javascript – Aprende a programar desde cero (SIN CENSURA) HD
Quinto video de la serie de Aprende a programar desde cero (SIN CENSURA). En este quinto video veremos como crear funciones con parametros en javascript.
4.- Crear funciones en #javascript – Aprende a programar desde cero (SIN CENSURA)
Cuarto video de la serie de Aprende a programar desde cero (SIN CENSURA). En este cuarto video veremos como crear funciones en javascript.
3.- La sentencia if en #javascript – Aprende a programar desde cero (SIN CENSURA)
Tercer video de la serie de Aprende a programar desde cero (SIN CENSURA). En este video veremos la sentencia if en javascript:
2.- Variables #javascript – Aprende a programar desde cero (SIN CENSURA)
Segundo video de la serie de videos Aprende a programar desde cero (SIN CENSURA).
En este video hablo sobre variables y como utilizarlas.
¿Cómo enviar un archivo por Ajax de #jquery?
Para enviar un archivo por medio de Ajax en realidad es muy fácil, sobre todo con la función Ajax de jquery, para ello lo demuestro a continuación:
Primero tenemos el código html siguiente, el cual tiene un formulario con un campo de texto y un input file, es importante que el atributo del form enctype sea multipart/form-data, si no es asi no se enviara el archivo.
<form id="frmFormulario" enctype="multipart/form-data">
<input type="text" name="uncampo">
<input type="file" name="archivo">
<input type="submit" value="Enviar">
</form>
Ahora tenemos que seleccionar(selectores de jquery) el formulario para que haga el envió por Ajax (Ver: ¿Cómo hacer una petición Ajax por medio de submit?) y para ello utilizo el siguiente código en javascript el cual esta comentado a detalle:
$(document).ready(function () {
//sobreescribimos el metodo submit para que envie la solicitud por ajax
$("#frmFormulario").submit(function (e) {
//esto evita que se haga la petición común, es decir evita que se refresque la pagina
e.preventDefault();
//ruta la cual recibira nuestro archivo
url="@Url.Content("~/Archivo/Recibe")"
//FormData es necesario para el envio de archivo,
//y de la siguiente manera capturamos todos los elementos del formulario
var parametros=new FormData($(this)[0])
//realizamos la petición ajax con la función de jquery
$.ajax({
type: "POST",
url: url,
data: parametros,
contentType: false, //importante enviar este parametro en false
processData: false, //importante enviar este parametro en false
success: function (data) {
alert("Se capturo el archivo con éxito")
},
error: function (r) {
alert("Error del servidor");
}
});
})
})
Y este es el trabajo que se hace en el front-end, ahora solo queda hacer el método en el back-end el cual capture el archivo y lo guarde o realice la acción deseada con el fichero; por ejemplo en Mvc.Net seria de la siguiente manera:
//controlador de mvc.net
public class Archivo : Controller{
public ActionResult Recibe(string uncampo, HttpPostedFileBase archivo)
{
//aqui va el codigo que deseemos para manipular el archivo
}
}
Y así de fácil se envía un archivo por medio de Ajax. Dudas o comentarios pueden hacérmelos llegar y yo les respondo en breve.
Cambiar una imagen al dar clic en una imagen en miniatura con #jquery, #galería
Para crear una mini galería básica como la siguiente (den clic en las miniaturas):
Lo podemos hacer de la siguiente forma:
HTML
<div id="thumbs">
<img style="width: 50px;" alt="" src="../img/images/at.jpg" data-img="../img/images/a.jpg" />
<img style="width: 50px;" alt="" src="../img/images/bt.jpg" data-img="../img/images/b.jpg" />
</div>
<div>
<img id="imagenGrande" style="width: 500px;" alt="" src="../img/images/a.jpg" />
</div>
Jquery
$(document).ready(function(){
//selector de imagenes a aplicar la funcionalidad de click
$("#thumbs img").click(function(){
//obtenemos la imagen a mostrar
urlImagenGrande=$(this).data("img");
//asignamos la imagen por medio de prop
$("#imagenGrande").prop("src",urlImagenGrande);
})
});
Utilizando la propiedad prop procedemos a cambiar el atributo src de img al momento que se da clic en la miniatura. De esta manera queda la funcionalidad dinámica gracias al selector de jquery ($(“#thumbs img”)).
Pasar una función como parámetro en #javascript
Para los que aprendimos un lenguaje Orientado a Objetos antes que javascript algunas veces desconocemos la naturaleza dinámica de este lenguaje, y una de las cosas naturales es poder guardar una función en una variable e igual enviarse esa función como parámetro.
Existen dos formas de hacerlo y la primera es haciendo una función anónima:
//creamos una función que recorre una lista
function recorreLista(funcionPasadaXParametro){
//recorremos el arreglo/lista
//utilizamos la palabra reservada this para referirnos al objeto que es dueño de este metodo.
for(i=0;i<this.length;i++){
//ejecutamos la función pasada como parametro, la cual se le envia el elemento actual
funcionPasadaXParametro(this[i]);
}
}
//creamos arreglo
arreglo=new Array(1,3,4,5);
//asignamos la funcion al metodo recorre
arreglo.recorre=recorreLista;
//ejecutamos la función pasandole una función anonima
arreglo.recorre(
//FORMA 1 para pasar una función como paramétro
//creamos la función anonima
function(elemento){
//mostramos el elemento actual
alert(elemento)
}
);
La segunda forma de pasar una función como parámetro, es pasando una función existente.
//creamos una función la cual enviaremos
function multiplicaX10(elemento){
alert(elemento*10);
}
//FORMA 2 para pasar una función como parametro
arreglo.recorre(multiplicaX10);
Nota: Recuerden no poner los paréntesis cuando se pasa una función ya existente como parámetro, el hecho de poner los paréntesis ejecuta la función.
