Problema con ajax en laravel



   AUTOR PREGUNTA

Publicado 24 marzo 2016 - 16:37

Buenas a todos de esta comunidad, resulta que tengo el siguiente problema: Estoy desarrollando un sistema de almacenes en el cual tengo un modulo de ingresos, al realizar un registro de nuevo ingreso, despliego una ventana modal donde le pido el almacen y el rubro, debajo tengo un boton que dice agregar producto al hacer clic se despliega otra ventana modal donde le sale un listado de los productos correspondientes.

Tengo el codigo ajax que seria el siguiente:

<script type="text/javascript" lang="javascript">
function despliegaModal2( _valor ){
	function objetoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}


function buscar(){
	divResultado = document.getElementById('bgVentanaModal2');

	//tomamos el valor enviado del formulario de envio
	clave=document.almacen_form.alm.value;

	//instanciamos el objetoAjax
	ajax=objetoAjax();
	//usamos el medoto POST
	//archivo que realizará la operacion
	ajax.open("POST", "IngresoController.php",true);
	//mostramos una imagen mientras cargamos el resultado de la consulta
	divResultado.innerHTML= '<img src="images/ajax.gif">';
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			//visualizamos el resultado correscpondiente
			divResultado.innerHTML = ajax.responseText
		}
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	//enviando los valoress
	ajax.send("clave="+clave)
}
	document.getElementById("bgVentanaModal2").style.visibility=_valor;
	}

</script>

Este codigo lo que hace es enviar el campo ingresado en almacen a la siguiente ventana (en teoria), mi pregunta es:

en el codigo

	ajax.open("POST", "IngresoController.php",true);

como le direcciono a un metodo de mi controlador que es el que hara la consulta?, ya que cuando lo pruebo con ese codigo no realiza nada.

O como es q en realidad funciona ajax, si tienen alguna otra forma de hacerlo me ayudaria mucho, lo unico que quiero es que al mandar los parametros de almacen y rubro me cargue en la otra ventana los productos respectivos en un dataTable de Jquery, es decir solo que mande los parametros xq la consulta para que carguen los datos ya estan listos en el controlador.

PD. Si pueden darme una manito en los combos dependientes tambien me ayudarian mucho.

Gracias de antemano por sus respuestas.




1 personas más tuvieron esta duda Yo también

 

Publicado 25 marzo 2016 - 14:28

El uso de funciones con valores GET o POST es muy usado con AJAX. 

 

Para determinar uso de GET o POST. La función determina el método que usará el objeto AJAX para enviar las variables a la página. En tu caso que envías con el método POST es diferente a cuando se hace con GET. Recuerda que si envías con GET y hay variables POST, estas no serán pasadas. Debes saber si hay variables POST que deben ser pasadas, colocar el método cómo POST y sino dejarlo en GET.

 

Te recomiendo echar un ojo aquí sobre el método Post.

Por favor Identificate o Registrate para poder ver este contenido


 

Publicado 26 marzo 2016 - 19:34

Hola lxevilx,

 

yo la verdad que no veo errores en el script. No sé si me falta alago más de info... En principio no está mal planteado y la función Post debería estar funcionando.


   AUTOR PREGUNTA

Publicado 31 marzo 2016 - 17:12

La solucion fue mas facil de lo que esperaba, en: 

ajax.open("POST", "IngresoController.php",true);

en vez de darle IngresoController.php

 

Defini una ruta: 

Route::post('datos_rub','IngresoController@datos_rub');

y quedo asi el codigo:

ajax.open("POST", "datos_rub",true);

y ahi funciona correctamente, gracias a todos los que comentaron el post.


 

Publicado 31 marzo 2016 - 17:14

La solucion fue mas facil de lo que esperaba, en: 

ajax.open("POST", "IngresoController.php",true);

en vez de darle IngresoController.php

 

Defini una ruta: 

Route::post('datos_rub','IngresoController@datos_rub');

y quedo asi el codigo:

ajax.open("POST", "datos_rub",true);

y ahi funciona correctamente, gracias a todos los que comentaron el post.

 

Gracias por compartirlo, yo lo he estado mirando y me interesó bastante.


 

Publicado 01 abril 2016 - 00:07

Gracias