Hola,
Creo que te has explicado muy bien.
El problema posiblemente es que aún no lo he entendido correctamente, porque no consigo que me funcione.
Mi script está en un formulario y hace lo siguiente:
Código Javascript
:
Ver original$(document).ready(function() {
function cambio_proveedor(callback){
var id_proveedor = $('.id_proveedor option:selected').val();
// Llamamos a carga_dtos_proveedor.php
$.get('carga_dtos_proveedor.php', {id_proveedor: id_proveedor}, function(datos){
// Pinta dtos de proveedor
$('.dto_proveedor_1').val(datos.dto_1);
$('.dto_proveedor_2').val(datos.dto_2);
$('.dto_proveedor_3').val(datos.dto_3);
},'json');
callback();
}
function coste_final(){
var tarifa_compra = $('.tarifa_compra').val();
var dto_proveedor_1 = $('.dto_proveedor_1').val();
var dto_proveedor_2 = $('.dto_proveedor_2').val();
var dto_proveedor_3 = $('.dto_proveedor_3').val();
var dto_1 = $('.dto_1').val();
var dto_2 = $('.dto_2').val();
var dto_3 = $('.dto_3').val();
var dto_ajuste = $('.dto_ajuste').val();
var punto_verde = $('.punto_verde').val();
// Obtenemos coste_final y lo pintamos
$.get('carga_coste_final.php', {tarifa_compra: tarifa_compra, dto_proveedor_1: dto_proveedor_1, dto_proveedor_2: dto_proveedor_2, dto_proveedor_3: dto_proveedor_3, dto_1: dto_1, dto_2: dto_2, dto_3: dto_3, dto_ajuste: dto_ajuste, punto_verde: punto_verde}, function(coste_final){
$('.coste_final').val(coste_final);
});
}
// Cálculo a la carga de la página
$(window).bind('load', function(){
cambio_proveedor(coste_final);
});
});
Tengo un select donde se escoge un proveedor.
Un script en PHP (carga_dtos_proveedor.php) recupera los valores de descuentos de ese proveedor (dto_proveedor_1, dto_proveedor_2, ...)
En el apartado "Cálculo a la carga de la página" hago que se ejecuten sucesivamente las funciones cambio_proveedor() y coste_final()
La primera se ejecuta correctamente y en el formulario se ven los datos de descuentos recuperados.
Pero la segunda función, coste_final(), no consigue recuperar los datos de los campos input de los descuentos.
Por las múltiples pruebas realizadas parece que es un problema de tiempo entre la primera y segunda función.
Y no acabo de entenderlo porque creo que he puesto bien las llamadas al callback.
Si podéis echarme una mano, se agradece.
Saludos