JavaScript - pausa en una funcion para que termine de ejecutar un php

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 15 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

pausa en una funcion para que termine de ejecutar un php

Publicado por german (3 intervenciones) el 26/04/2017 17:47:14
gente, buenos dias
me presento, me llamo german, y vengo de programar en VB, se imaginaran todos mis problemas

el primero que tengo es desde un text, lleno un select con datos del mysql y despues con lo que elijen en el select lleno una tabla.

funciona todo bien, pero cuando ejecuto el php, las variables del select (length o selecteditem) no estan llenas. osea, se va al php y sigue. como hago que no siga con la funcion hasta que no vuelva del php ?

gracias !!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type="text/javascript" charset="utf-8">
	function fnbuscar(){
		var elegido = document.getElementById('buscotxt').value.toLowerCase();
		$.post("combo_prod.php", { elegido: elegido }, function(data){$("#prod").html(data);});
 
		//var x = document.getElementById("prod").selectedIndex
		var x = document.getElementById("prod").length
			swal({
				title: "Recibos Pendientes",
				//type:"success",
				type:"warning",
 
				text: "X="+x
			});
		$("#prod").click(function () {
			$("#prod option:selected").each(function () {
				elegido=$(this).val();
				mprod=elegido;
				$.post("combo_recibos.php", { elegido: elegido }, function(data){
					$("#tabla2").html(data);
				});
			});
		});
	}
</script>
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: 477
Bronce
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

pausa en una funcion para que termine de ejecutar un php

Publicado por Alejandro (130 intervenciones) el 27/04/2017 04:21:16
Hola, Si lo que quieres es ejecutar el codigo luego de realizar la petición ajax puedes poner dicho codigo dentro del callback que le pasas como tercer parametro al metodo post de jQuery. Intenta de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<script type="text/javascript" charset="utf-8">
	function fnbuscar(){
		var elegido = document.getElementById('buscotxt').value.toLowerCase();
		$.post("combo_prod.php", { elegido: elegido }, function(data) {
 
           $("#prod").html(data);
 
            //var x = document.getElementById("prod").selectedIndex
            var x = document.getElementById("prod").length
            swal({
                title: "Recibos Pendientes",
                //type:"success",
                type:"warning",
 
                text: "X="+x
            });
            $("#prod").click(function () {
                $("#prod option:selected").each(function () {
                    elegido=$(this).val();
                    mprod=elegido;
                    $.post("combo_recibos.php", { elegido: elegido }, function(data){
                        $("#tabla2").html(data);
                    });
                });
            });
        });
	}
</script>

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

pausa en una funcion para que termine de ejecutar un php

Publicado por Vainas (258 intervenciones) el 30/04/2017 20:05:10
Buenas:

Esto se llaman promesas y debes leer un poco antes para saber de que se habla (https://www.funcion13.com/comprendiendo-promesas-y-deferreds-en-jquery/).

La opcion que te pasa Alejandro es valida, yo te doy otra diferente (es un ejemplo sin probar pero es una idea clara de lo que son las promesas y no juntar todo en una misma funcion):

Si entendemos que $.post desvuelve una promesa podemos hacerlo de esta forma:

1
2
3
$.post("combo_prod.php", { elegido: elegido }, function(data){$("#prod").html(data);}).then(function(){
// aqui el resto de tu codigo
})

Ahora mismo no recuerdo bien pero esto puede tener un error ya que la ejecucion del callback dentro del $.post puede ser depues del then pero es una idea de como hacer promesas en jquery.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar